选择具有类作为过滤器的元素

时间:2013-02-05 12:18:25

标签: jquery

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

以下是我的代码:Click here to view

我知道~=选择器检查它是否与任何单词完全相等,^=检查值是否匹配。

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

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

来选择类
$('tag.class');
$('tag#id');
...

所以,在你的情况下:

.parents('span.header');

答案 1 :(得分:1)

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

"lid_1 header1"

检查每个类,它只是比较属性中的字符串,如果以给定的字符串等开头则看到它。这就是原因:

span[class*="header"]

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

span[class^="header"]

无效。

答案 2 :(得分: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

上测试代码