Javascript 使用jQuery搜索HTML表
我有一个表,需要在特定行中指定一列Javascript 使用jQuery搜索HTML表,javascript,jquery,Javascript,Jquery,我有一个表,需要在特定行中指定一列 <tr></tr> <tr> <td></td> <td></td> <td class="important_column"><a href="/bla/blah/link">IMPORTANT INFO</a></td> <td></td> <td clas
<tr></tr>
<tr>
<td></td>
<td></td>
<td class="important_column"><a href="/bla/blah/link">IMPORTANT INFO</a></td>
<td></td>
<td class="need_link_here"><a href="/I/WANT/THIS/LINK/">link</a></td>
</tr>
<tr></tr>
因此,如果“重要专栏”中的链接文本等于我要查找的内容。获取“此处需要链接”列中的链接文本。
如何使用jQuery
jQuery('.need_link_here a',
jQuery('.important_column a:contains(IMPORTANT INFO)').parent()
).attr('href');
变异
$("td.need_link_here a", $("table tr td.important_column a[href=/bla/blah/link]").closest(tr)).attr("href");
您可以使用下一种方法获取已找到项的同级:
$('.important_column').next().next().attr("href")
将选择第二个td元素的href,该元素位于具有class=“important\u column”的js片段之后,该js片段将完成以下操作:
if($('.important_column a').text() == 'SOME TEXT YOU WANT')
{
$('.important_column a').attr('href', $('.need_link_here a').attr('href'));
}
像这样的
$(function() {
column_text = $(".important_column a").text();
if(column_text == "IMPORTANT INFO") {
link_href = $(".need_link_here a").attr("href");
alert(link_href);
}
});
退房。不清楚OP想要什么。离这儿近吗
$('#myTable tr').each(function ()
{
var $tr = $(this);
if($tr.find('td.important_column').text() === 'IMPORTANT INFO')
{
alert($tr.find('td.need_link_here > a').attr('href'))
}
});
您可以使用检查元素是否包含特定文本:
$("table td:contains('IMPORTANT INFO')")
.next().next()
.children("a");
示例-OP写道“如果“重要列”中的链接文本与我要查找的内容相等”,但你只需查看类即可。@snowlord:很好。更正了。@jAndy:好吧,这是一个非常模糊的批评(这并没有说明为什么它“糟糕”或者可以做些什么来改进它)。部分解决方案:你可以用这种方法搜索链接中的文本:我认为“链接文本”这个词在这里会造成一些混乱。你是说href属性还是里面的文本?对不起,如果我弄糊涂了,我指的是1里面的文本。假设类别不重要。2.不检查文本。3.试图获取TD元素的href属性的值。@David Dorward:很明显,“此处需要链接”不会出现在实际页面中,这不是很明显吗?如果是的话,那就很琐碎了……@斯诺洛德:不,这不明显,这个问题有很多解释。甚至不清楚“重要列”类是否会出现。+1因为这是迄今为止唯一一个不使用重要列的答案,需要链接这里的类,我怀疑这些类在实际情况中是否会出现。该死,我错了,重要列被使用了。@snowlord:是的,但不一定是。这里的代码如果没有它也能正常工作。事实上,我刚刚编辑了答案和示例,这样您就可以感觉+1是合理的;-)
$("table td:contains('IMPORTANT INFO')")
.next().next()
.children("a");