【发布时间】:2012-09-20 13:59:18
【问题描述】:
遇到了麻烦,基本上是在尝试创建一个可以用作选择器的变量。例如
$('a').click(function(){
var selector = $(this).dompath();
});
HTML:
html
body
div
div /div
/div
ul
li
li
/ul
div
ul
li
li
li hello world
/ul
/div
body
html
这会返回类似的东西
path = html body div ul li:contains('hello world')
然后我可以在选择器中使用它来选择这个 div 所以如果我喜欢
$(path).text() would return "hello world"
非常感谢!
【问题讨论】:
-
不同之处在于我不想使用像 :eq(3) 这样的元素的索引,就好像添加了另一个元素一样 eq3 将是错误的,这就是我希望它与内容匹配的原因: )
-
好的,但是您使用的任何类型的选择器都容易受到 DOM 的某些种更改的影响。例如。如果您使用
html body div ul li:contains('hello world'),但添加了另一个包含<li>hello world war ii</li>的- 元素,则您的路径可能选择了错误的元素。所以你必须指定你的选择器应该对什么样的差异敏感。
-
好的,然后用 [where text = hello world] 替换包含会更容易吗??
-
@OwenMelbourne,请尝试理解 LarsH 的评论——您对该评论的回复是您没有理解该评论的证据。