您的位置:首頁技術文章
文章詳情頁

javascript - 遍歷修改<td>標簽

瀏覽:106日期:2023-03-03 16:53:03

問題描述

jquery版本:1.8原代碼

<tr><td>1</td><td>11,12</td></tr><tr><td>2</td><td>21,22</td></tr>

改成

<tr><td>1</td><td><a>11</a><a>12</a></td></tr><tr><td>2</td><td><a>21</a><a>22</a></td></tr>

嘗試過給<td>11,12</td>加入id='img',但是$('#img').eq(1).html()無法獲取到第二行的內容.

for(var i=0; $('#img').length; i++){ //$('#img').eq(i).html需要非空判斷 var arr= $('#img').eq(i).html.spilt(); var str; for(var j=0; aar.length; j++){str = '<a>'+arr[j]+'</a>'; } $('#img').eq(i).html(str);}

jQuery不是很熟,一些語法錯誤希望大手幫忙改正,給大手們添麻煩了.

問題解答

回答1:

不知道你明不明確一點,id是唯一的,一個html代碼頁面同樣的id名稱只能有一個!所以$('#img').eq(1)這樣的代碼肯定不符合規范。

目測你的代碼把添加id改為添加類class后這樣是沒有問題的,另外可以使用jquery的each方法來遍歷dom節點:

var $img = $(’.img’);’$img.each(function(index,item){ var aar = $(item).text().split(’,’), str = ’’; arr.forEach(function(item1,index1){str = '<a>'+item1+'</a>'; }); $(item).html(str);});回答2:

$(’tr’).each(function(){ var _arr = $(this).children('td:eq(1)').html().split(','); var _str = ''; for(var i in _arr){_str +='<a>'+_arr[i]+'</a>' } $(this).children('td:eq(1)').html(_str);})回答3:

id只能是唯一的哦,只能取到第一個值,所以要用class

<!DOCTYPE html><html><head> <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'> <title>test</title> <script type='text/javascript' src='https://cdn.bootcss.com/jquery/2.2.3/jquery.min.js'></script><body> <table> <tr> <td>1</td> <td>11,12</td> </tr> <tr> <td>2</td> <td>21,22</td> </tr> </table></body><script type='text/javascript'>$(function () { $(’tr’).each(function(){ $(this).addClass('img'); // 這里加入class var dom = $(this).find('td').eq(1); dom.each(function () { var arr = $(this).html().split(','); var len = arr.length; var str = ’’; for (let i = 0; i < len; i++) {str += ’<a>’ + arr[i] + '</a>' } console.log($(this), len, str); $(this).html(str); });}); // 這里你可以輸出來看看 console.log($('.img').eq(1).html())})</script></html>

標簽: JavaScript
相關文章:
国产综合久久一区二区三区