我是jquery的菜鸟。坚持并希望得到一些帮助。 目前正在构建一个从特定页面获取数据的工具。该页面如下所示:
<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">
<tbody> //This is data group 1
<tr id="parent0"> //Record 1
<td align="left"> <---------- text1 here -------> </td>
<td align="left"> <---------- text2 here -------> </td>
<td align="left"> <---------- text3 here -------> </td>
</tr>
<tr id="parent0"> //Record 2
<td align="left"> <---------- text1 here -------> </td>
<td align="left"> <---------- text2 here -------> </td>
<td align="left"> <---------- text3 here -------> </td>
</tr>
</tbody>
</table>
<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">
<tbody> //This is data group 2
<tr id="child0"> //Record 1
<td align="left"> <---------- text1 here -------> </td>
<td align="left"> <---------- text2 here -------> </td>
<td align="left"> <---------- text3 here -------> </td>
</tr>
<tr id="child0"> //Record 2
<td align="left"> <---------- text1 here -------> </td>
<td align="left"> <---------- text2 here -------> </td>
<td align="left"> <---------- text3 here -------> </td>
</tr>
</tbody>
</table>
以下是jquery的片段:
ancestor = $(this).closest("tr[id]");
matchedElement = $(this).first();
originalBgColor = $(matchedElement).css('background-color');
$(matchedElement).css('background-color', 'green');
$(matchedElement).bind('click.annotator', function(event) {
event.stopPropagation();
event.preventDefault();
self.port.emit('show',
[
document.location.toString(),
$(ancestor).attr("child0"),
$(matchedElement).text()
]
我正在尝试从id为parent0和child0的<tr>
块中捕获所有数据。
在当前工作状态下,该工具将两个表中的所有数据捕获为文本。理想情况下,我希望能够分别捕获所有<TR>
块,将它们放入一个我可以迭代的数组中。
答案 0 :(得分:2)
看起来您正在使用ID元素,您应该使用类。
而不是
<tr id="child0">
<tr id="parent0">
这样做
<tr class="child0">
<tr class="parent0">
与ID不同,您可以使用class属性为多个元素指定相同的值。
然后你可以像这样选择它们
$("tr.child0,tr.parent0").each(
function() {
//this will be fired for each matched element
$(this).doSomething();
}
)
答案 1 :(得分:0)
$('tr[id="child0"]').each(function() {
//this will be fired for each matched element
$(this).doSomething();
}
);
这样你就可以得到id为child0的所有tr 请查看此链接以获取更多参考http://api.jquery.com/category/selectors/
答案 2 :(得分:0)
这样做......
$('cite.fn:contains(blabla)').css('color', 'red');
编辑:虽然这也符合“blablablabla”。
$('cite.fn').each(function () {
if ($(this).text() == 'blabla') {
$(this).css('color', 'red');
}
});
这应该更准确。
编辑:实际上,我认为这个解决方案更优雅:
$('cite.fn').filter(function () {
return $(this).text() == 'blabla';
}).css('color', 'red');;