我有一个数组
arr = ["value1", "value2", "value3"];
如果它包含我的数组中的值,我想检查td
值。如果是,我想设置另一个td
我试试这个,但不起作用:
<table>
<tr>
<td class="woj">value1</td>
<td class="user"></td>
</tr>
<tr>
<td class="woj">value5</td>
<td class="user"></td>
</tr>
<tr>
<td class="woj">value6</td>
<td class="user"></td>
</tr>
</table>
var arr = ["value1", "value2", "value3"];
var woj = $('.woj').html();
if($.inArray(woj, arr) > -1) {
$(".user").text("user1");
}
答案 0 :(得分:1)
您需要迭代所有.woj
个元素,如果数组中有内部文本,请修改下一个表格单元格内容:
var arr = ["value1", "value2", "value3"];
$('.woj').each(function(i) {
if (arr.indexOf($(this).text().trim()) > -1) {
$(this).next().text("user" + i);
}
});
答案 1 :(得分:0)
这是因为有很多元素与您的选择器匹配&#39; .woj&#39;。
尝试迭代所有这些并分别检查每一个。使用innerText属性而不是html方法也更好。或多或少
$.each($('.woj'), function(idx, td){
if($.inArray(td.innerText, arr) ....
});
一般来说,如果你引入一个框架,比如淘汰赛,这样的事情会更容易。然后你操作数据模型,而不是表示层和解析DOM。