如何在一个特定部分下获取li标签属性数据

时间:2014-09-24 12:05:00

标签: jquery

我有这个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标签的数组的形式 提前致谢

2 个答案:

答案 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();
});