2014-09-24 86 views
-2

我有這個HTML如何獲得李標籤attrbute

<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下一個特定部分目前的數據,我需要把所有的標籤下是vendor_id's目前特定部分。

我試過這種方法,但我得到錯誤未捕獲的語法錯誤:在瀏覽器控制檯意外串

$(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的所有存在於特定部分 感謝李標記數組的形式提前

回答

1

你需要使用,最接近()來查找section,找到()來獲取li元素

$(document).on('click', '.inDelete', function (event) { 
    var existingvendorids = $(this).closest("section").find('li').map(function() { 
     return $(this).attr("vendor_id"); 
    }).get(); 
}); 
+0

非常感謝你,但爲什麼是我得到的結果時,它僅在擴展狀態? (在jsfiddle中,無論是展開Office還是HOME)我都無法使它處於未展開狀態。 – Pawan 2014-09-24 12:10:11

1

試試這個:使用closest()得到父母section,然後使用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