1

我是 jQuery 的新手,对.parents(). 问题是当我使用 时.parents('span[class^="lid"]'),我的代码可以工作并且得到我想要的,即获取元素class作为过滤器。但是当我使用.parents('span[class~="header"]')or.parents('span[class^="header"]')时,我没有得到要显示的<span> 元素。

下面是我的代码:点击这里查看

我肯定知道~=选择器检查它是否完全等于任何单词并^=检查值的开头是否匹配。

谢谢您的帮助。

4

3 回答 3

1

jQuery 的选择与 CSS 类似,因此您可以使用点 (.)

$('tag.class');
$('tag#id');
...

所以,在你的情况下:

.parents('span.header');
于 2013-02-05T12:20:16.637 回答
1

它是一个“属性选择器”,而不是“类选择器”,因此它获取属性的值,该值是:

"lid_1 header1"

它不检查每个类,它只是比较属性中的字符串并查看它是否以给定的字符串等开头。这就是为什么:

span[class*="header"]

将起作用,因为字符串包含“header”,但它不以“header”开头,所以:

span[class^="header"]

不管用。

于 2013-02-05T12:24:53.670 回答
1

您可以使用此代码直接使用

var parentEls = $("b").parents('span.lid_1').map(function() {
  return this.tagName;
}).get().join(", ");
$("b").append("<strong>" + parentEls + "</strong>");

在http://jsbin.com/azurat/7/edit上测试代码

于 2013-02-05T12:25:17.430 回答