2011-11-30 81 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);