我是jQuery的新手,并且.parents()
有点问题。问题在于,当我使用.parents('span[class^="lid"]')
时,我的代码可以正常工作并获得我想要的内容,即使用class
作为过滤器获取元素。但是当我使用.parents('span[class~="header"]')
或.parents('span[class^="header"]')
时,我没有显示<span>
元素。
以下是我的代码:Click here to view
我知道~=
选择器检查它是否与任何单词完全相等,^=
检查值是否匹配。
感谢您的帮助。
答案 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>");
上测试代码