繁体   English   中英

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

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

我的表中有以下行结构:

<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”class ='danger'。

这是我的jQuery代码:

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

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

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

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

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

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

您可以使用:contains() doc:empty doc selectors:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM