2011-11-30 102 views
1
<ul><li class="rjust"> 
    <a href="#" class="edit-video-lightbox" id="4f80a4b5">Edit</a> 
    <input type="hidden" class="video_title" value="test123"> 
    <input type="hidden" class="video_description" value="Sample Description"> 
    <input type="hidden" class="video_tags" value="Adjust"> 
    <input type="hidden" class="video_tags" value="TXV"> 
</li> 

<li class="rjust"> 
     <a href="#" class="edit-video-lightbox" id="235235">Edit</a> 
     <input type="hidden" class="video_title" value="another_test"> 
     <input type="hidden" class="video_description" value="descriptme agian"> 
     <input type="hidden" class="video_tags" value="tag1"> 
     <input type="hidden" class="video_tags" value="tag2"> 
</li></ul> 

當我點擊「編輯」 A HREF,我想要得到的類的所有值的所有值「video_tags」最接近它。
當點擊第一個「編輯」(id =「4f80a4b5」)時的示例,我想要獲得「調整」,「TXV」的「video_tags」的所有值。另一方面,當我點擊另一個「編輯」(id =「235235」)時,我應該得到的所有「video_tags」的值是「tag1」,「tag2」,因爲它顯然接近它。

請注意,類「video_tags」是靈活的,它可以有很多類,我的例子只有每個li只有2個video_tags。jQuery的獲取最近的元素


請幫助我解決這個問題。
任何幫助將不勝感激和獎勵!謝謝:)

回答

2

你可以試試這個

var tags; 
$(".edit-video-lightbox").click(function() { 
    tags = []; 
    $(this).siblings('.video_tags').each(function() { 
      tags.push($(this).val()); 
    }); 
}); 
2

有jQuery中的這個.siblings()方法:

$('.edit-video-lightbox').click(function() { 
    $(this).siblings('input.video_tags').each(function() { 
    //this keyword refers to sibling element 
    //user this.value to retrieve element's value 
    }); 
}); 
2

是啊,我知道,三個答案了。但只是想突出jQuery 1.7中引入的the new on method以及來自jQuery 1.0的the nifty map method

function getVal(elem) { 
    return elem.value; 
} 

function getVals(e) { 
    var tags = $(e.target).siblings('.video_tags'), 
     values = $.map(tags, getVal); 
    e.preventDefault(); 
    // do whatever you want with `values` here 
} 

$('ul').on('click', '.edit-video-lightbox', getVals);