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

How to get text of link that inside td in HTML Table using JavaScript?

本文关键字:内部 td 链接 文本 获取 JavaScript 何使用 HTML 表格      更新时间:2023-09-26

我的表中有以下行结构:

<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>

注意:我使用引导库

我需要设置为每个在"(空)或"选择 QB"类='危险'内有文本的<td>

这是我的jQuery代码:

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

当然,$(this).html() == ""效果很好,但是如何使用选择QB将"危险"类设置为<td>

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

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

这是一个演示:http://jsfiddle.net/wared/a84CW/。

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

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

如果您只是尝试检查锚点内的文本,则应在问题中指定?

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

试试 .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");