我有这个HTML
<ul>
<section id="Home" class="ulseWrap lielement">
<div class="intit someclassss">Home<span id="deleteHome" class="inDelete"></span></div>
</section>
<section id="Office" class="ulseWrap lielement">
<div class="intit someclassss">Office<span id="deleteOffice" class="inDelete"></span></div>
<ul class="restListings">
<div class="inner-intit">
<sub class="sub">Yours Favorite Restaurant</sub>
<li class="innerChild" vendor_id="2">
</li>
<li class="innerChild" vendor_id="1">
</li>
</div>
</ul>
</section>
</ul>
点击课程 inDelete 时,我需要获取该特定部分下的所有 li 标记vendor_id's
。
我试过这种方式,但是我在浏览器控制台下遇到错误未捕获的SyntaxError:意外字符串
$(document).on('click', '.inDelete', function(event ) {
var existingvendorids = [];
$(this).closest( "section li" ).each(function() {
var vendor_id = $(this).attr("vendor_id");
existingvendorids.push(vendor_id);
});
});
这是我的jsfiddle
http://jsfiddle.net/1ty1v8u1/9/
请参阅带注释的函数//在jsfiddle中单击GE KONE(DELETE)时调用此函数。
我需要所有供应商ID以该特定部分中存在的所有li标签的数组的形式 提前致谢
答案 0 :(得分:1)
试试这个:使用section
获取父closest()
,然后使用find()
获取
li
$(document).on('click', '.inDelete', function(event ) {
var existingvendorids = [];
$(this).closest("section").find("li").each(function() {
var vendor_id = $(this).attr("vendor_id");
existingvendorids.push(vendor_id);
});
});
<强> Demo 强>
答案 1 :(得分:1)
你需要使用,nearest()来查找section
和find()来获取li
元素
$(document).on('click', '.inDelete', function (event) {
var existingvendorids = $(this).closest("section").find('li').map(function () {
return $(this).attr("vendor_id");
}).get();
});