2016-12-26 52 views
1

在我的jQuery脚本我想先匹配所有图像元素,所以我成功地这样做:如何找到离我元素最近的div内的命名属性的值?

$("img") 

现在我需要包含在一个父DIV的data-context-item-id属性的值。这是一个实际的块:

<div class="yt-lockup clearfix yt-lockup-video yt-lockup-grid vve-check" data-context-item-id="zBpS7_GgvTs" data-visibility-tracking="CCsQlDUiEwitlY7EmpLRAhUFgU4KHYLMBDwomxxAu_qCjf_dlI3MAQ=="> 
    <div class="yt-lockup-dismissable"> 
     <div class="yt-lockup-thumbnail"> 
     <span class=" spf-link ux-thumb-wrap contains-addto"> 
      <a href="/watch?v=zBpS7_GgvTs" class="yt-uix-sessionlink" aria-hidden="true" data-sessionlink="ei=pzthWO2lKoWCugKCmZPgAw&amp;feature=c4-videos-u&amp;ved=CEsQlx4iEwitlY7EmpLRAhUFgU4KHYLMBDwomxw"> <span class="video-thumb yt-thumb yt-thumb-196"> 
      <span class="yt-thumb-default"> 
      <span class="yt-thumb-clip"> 
      <img width="196" aria-hidden="true" data-ytimg="1" alt="" src="https://i.ytimg.com/vi/zBpS7_GgvTs/hqdefault.jpg?custom=true&amp;w=336&amp;h=188&amp;stc=true&amp;jpg444=true&amp;jpgq=90&amp;sp=68&amp;sigh=qu9lcW3e2YYrWP8nChAGopv3wL4" onload=";__ytRIL(this)" style="display: none;"> 
...more here... 

请注意包含名为data-context-item-id的属性的top-post div。我需要从img的选择器开始获取该值(在本例中为zBpS7_GgvTs)。

页面上会有很多这样的内容,所以我需要做一个each()。我需要获取包含该属性的DIV的句柄,并且我需要该属性的值。提前致谢。

回答

1

你可以使用.each()方法和closest()

$("img").each(function(){ 
    $(this).closest('div[data-context-item-id]').data('context-item-id'); 
}) 

希望这有助于。

$("img").each(function(){ 
 
    console.log($(this).closest('div[data-context-item-id]').data('context-item-id')); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div data-context-item-id="zBpS7_GgvTs111111"> 
 
    <img width="196" aria-hidden="true" data-ytimg="1" alt="" src="http://www.clker.com/cliparts/0/q/I/h/c/C/number-1-design-th.png"/> 
 
</div> 
 

 
<div data-context-item-id="zBpS7_GgvTs222222"> 
 
    <img width="196" aria-hidden="true" data-ytimg="1" alt="" src="http://www.clker.com/cliparts/R/q/f/z/C/C/2-in-circle-th.png"/> 
 
</div>

+1

工程很好。非常感谢! – HerrimanCoder

0

试试这个。

$("img").each(function(){ 
    console.log($(this).parents().('div[data-context-item-id]').data('context-item-id')); 
});