我目前有一个网站源代码(无法控制源代码),其中包含需要操作的某些内容。这在表面上很简单,但是在标签上没有可以唯一标识它的唯一ID属性,因此允许进一步遍历。
以下是源代码的片段,围绕着相关标签。
...
<td width="100%">
<!--This table snaps the content columns(one or two)-->
<table border="0" width="100%">
...
基本上,HTML注释是一种获取对该元素的访问权限的简单方法。使用JQuery comment add-on this question中的and some help from snowlord comment below,我已经能够识别注释并使用'dump'扩展名检索以下输出。
$('td').comments().filter(":contains('This table snaps the content columns(one or two)')").dump();
返回;
jQuery Object {
0 = DOMElement [
nodeName: DIV
nodeValue: null
innerHTML: [
0 = String: This table snaps the content columns(one or two)
]
]
}
但是我不确定如何遍历DOM中的兄弟元素。
这应该很简单,但我对JQuery没有太多的选择器经验。任何建议都表示赞赏。
答案 0 :(得分:1)
我想你可以使用siblings方法:
$('td').comments().siblings('table').yourcode...
来自文档:
给定一个表示一组DOM元素的jQuery对象,.siblings()方法允许我们在DOM树中搜索这些元素的兄弟,并从匹配元素构造一个新的jQuery对象。
该方法可选择接受a 选择器表达式相同的类型 我们可以传递给$()函数。 如果提供选择器,则 元素将通过测试过滤 他们是否匹配。
答案 1 :(得分:0)
如果您对此代码有任何控制权,请在表格中输入ID。
如果你必须做一些讨厌的事情,也许你可以使用
var tables = $("table");
获取所有表格,然后通过索引确定有问题的表格......
$(tables[5]).css("color", "aqua");
一旦添加或删除表,这就会中断,但如果您无法在表中添加ID,则它似乎是一种潜在的替代方案。