【问题标题】:Access an element by matching its "html()" content通过匹配其“html()”内容来访问一个元素
【发布时间】:2013-05-22 13:51:54
【问题描述】:

我正在使用table form,它显示数据库表的行。 id=0 有一个独特的行,不能删除,但我无法访问它。 id 存储在 td 中,.html() jQuery 方法 returns 恰好是 id (0)。问题是每一行中还有许多其他 tds 具有相同的值。唯一值唯一的列是表中的第二列,我使用:nth-child(2) 访问它。这是表结构:

<table class="formTable">
  <tr>
    <th width="26"><input id="chkAll" type="checkbox"
                    onchange="chkSelectAll()"></th>
    <th width="48">Id</th>
    <th width="288">Description</th>
    <th>Type</th>
    <th>MaxTime<br>(min.)</th>
  </tr>
</table>

编辑:我已经得到了行号。现在我只需要检查“td html()”是否等于“0”。

【问题讨论】:

  • 你不能在第二行设置一个css类吗?
  • 请添加更多代码。您要求td 的第二个td 子级,但不要在您的html 中显示任何td 元素。
  • @Raphaël Althaus 行是通过从数据库加载动态生成的。我正在寻找的行并不总是出现在相同的位置,所以我无法使用固定索引到达它。
  • @Michael_B 我跟他说的一样。行是用javascript生成的,所以开头没有tds。
  • 你可以看看生成的 html 并分享,不能吗?

标签: jquery html html-table children


【解决方案1】:

您可以在 jQuery 中使用高级选择器:http://api.jquery.com/nth-child-selector/ 所以你可以使用 $('td:nth-child(2)') 例如。

【讨论】:

  • 是的,我刚到那里。现在我要知道哪个 td 的 html() 为 0。
  • if($('td:nth-child(2)').html() == '0') 之类的怎么样?
【解决方案2】:

知道了。代码如下:

$('td:nth-child(2)').filter(function() { return $.text([this]) == '0' }).parent().children().eq(0).children().eq(0).attr('disabled', 'disabled');

这会访问 tr 内的每一秒 td,将选择限制为具有“0”作为文本的选择,获取其父项,访问包含复选框和此复选框的子行并禁用它。希望这对其他人有用。

【讨论】:

    猜你喜欢
    • 2013-02-28
    • 1970-01-01
    • 2014-12-12
    • 2011-01-16
    • 2015-06-06
    • 2015-09-12
    • 2019-05-18
    相关资源
    最近更新 更多