Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个这样的 HTML 部分:
<li data-file="file.mp3"> <div class="pink-light playing">
现在,我想获取<li>. 但是我有几个<li>标签,我只想获取具有内部“正在播放”类的 div 的属性。
<li>
我的脚本:
$(".playing").before($("li"),function(){ alert($(this).attr("data-file")); });
怎么了?
谢谢!
有几种方法可以做到这一点。如果.playing元素是唯一的,那么:
.playing
var file = $(".playing").closest("li").attr("data-file");
closest找到与给定选择器匹配的最近的祖先。由于您的.playing元素是 的子元素(后代),因此li您可以这样找到它。
closest
li
或者,您可以使用:has伪类:
:has
var file = $("li:has(.playing)").attr('data-file');
...但请注意,这:has是一个 jQuery 的东西,所以它不能委托给选择器引擎。
尝试这个
$(".playing").each(function(){ alert($(this).parent().attr("data-file")); });
注意:使用 prop 而不是 attr
before仅用于插入新元素。如果要检索,请prev改用。虽然,在您的情况下,您对前一个兄弟姐妹并不真正感兴趣,但对parent节点感兴趣,因为div它位于li:
before
prev
parent
div
$(".playing").parent().each(function() { alert($(this).attr("data-file")); });