jQuery如何检查td值并将其与数组进行比较

时间:2015-11-18 22:46:20

标签: jquery

我有一个数组

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");
 }

2 个答案:

答案 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。