如何使用JavaScript获取HTML表格中td内的链接文本?

时间:2013-11-15 16:07:13

标签: javascript jquery html css twitter-bootstrap

我的表中有以下行结构:

<tr class="mattersRow">
    <td></td>
    <td colspan="16">
        <div class="dropdown">
            <a href="#" data-toggle="dropdown">Choose QB</a>
            <ul class="dropdown-menu" aria-labelledby="dLabel" role="menu"> … </ul>
        </div>
    </td>
</tr>

注意:我使用bootstrap库

我需要将每个<td>设置为“”(空)或“选择QB”类=“危险”。

这是我的jQuery代码:

$("#tblMatters .mattersRow td").each(function () {
      if ($(this).html() == "" || $(this).innerHTML == "Choose QB")
      {
           $(this).addClass("danger");
           flag = true;
      }
});

当然,$(this).html() == ""效果很好,但如何使用选择QB

将“危险”类设置为<td>

4 个答案:

答案 0 :(得分:3)

addClass接受一个函数作为参数,在该函数中,您可以访问当前迭代的td元素,并可以检查它包含的内容:

$("#tblMatters .mattersRow td").addClass(function() {
    var txt = $.trim( $('a', this).text() );

    return txt.length === 0 || txt == 'Choose QB' ? 'danger' : '';
});

如果您只是想检查锚点内的文本,您应该在问题中指明它吗?

答案 1 :(得分:3)

您可以使用:contains() doc :empty doc 选择器:

$('#tblMatters .mattersRow')
    .find('td:contains(\'Choose QB\'),td:empty')
    .addClass('danger');

以下是演示:http://jsfiddle.net/wared/a84CW/

答案 2 :(得分:1)

尝试.closest()

$(this).closest('td').addClass("danger");

使用.filter()

$("#tblMatters .mattersRow td").filter(function () {
    var txt = $.trim($(this).text());
    return txt.length === 0 || txt === 'Choose QB';
}).addClass("danger");

或检查锚标记的文本

$("#tblMatters .mattersRow td a").filter(function () {
    var txt = $.trim($(this).text());
    return txt.length === 0 || txt === 'Choose QB';
}).closest('td').addClass("danger");

<小时/> 这应该适用于

$("#tblMatters .mattersRow td a").filter(function () {
    var txt = $.trim($(this).text());
    return $(this).closest('td').text().length === 0 || txt === 'Choose QB';
}).closest('td').addClass("danger");

答案 3 :(得分:1)

使用$(this).text().trim() === 'Choose QB'