2014-05-21 25 views
0

我有一个带多个多选元素的表单,每个元素都有自己的添加和删除按钮。如何将最接近的选择元素与每个添加和删除按钮相关联。当点击最近的按钮时,从多个选择中获取选项值

下面是HTML的一个小部分:

<div>Administrator</div> 
<input type="button" class="add" value="Add" /> | <input type="button" class="remove" value="Remove" /> 

<select name="list_1" size="10" multiple="multiple"> 
    <option value="1">John Doe</option> 
    <option value="3">Jimmy Jack</option> 
    <option value="13">George Stephen</option> 
    <option value="26">Joe Smith</option> 
    <option value="30">Mary Kay</option> 
    <option value="76">Ace Ventura</option> 
</select> 

这里是jQuery的,到目前为止我已经试过。所有返回的值都是未定义的:

$('.remove').click(function(e) {  

    var temp1 = $(this).prev('select').val(); 
    var temp2 = $(this).next('select').val(); 
    var temp3 = $(this).closest('select').val();   
    var temp4 = $(e.target).prev('select').val(); 
    var temp5 = $(e.target).next('select').val(); 
    var temp6 = $(e.target).closest('select').val(); 

    window.console&&console.log('temp1: ' + temp1); 
    window.console&&console.log('temp2: ' + temp2); 
    window.console&&console.log('temp3: ' + temp3); 
    window.console&&console.log('temp4: ' + temp4); 
    window.console&&console.log('temp5: ' + temp5); 
    window.console&&console.log('temp6: ' + temp6); 

    e.preventDefault(); 

}); 
+0

你为什么不分配一个ID,选择,并调用它? –

+0

我有近100个选择元素。我想尽可能通用。除非你知道更好的方法,但我不想访问个人ID。 – VinnyTony

+0

一个更好的方法是使用一个类:) –

回答

0

我认为您应该再次检查您的原始代码。 我刚刚复制了你的代码和$(),接下来工作正常。

var temp2 = $(this).next('select').val(); 

Fiddle

+0

你让我在这里。事实上,它确实通过小提琴工作,但我仍然无法让它在我的形式上显示价值......很奇怪。 – VinnyTony

+0

在我的本地副本上,我将添加/删除按钮与管理员包装在同一个div中。我改变了这一点,以匹配我发布在这里,它的工作原理!这就是为什么我保持短发。感谢Prosto。 – VinnyTony

+0

那么,那么你可以使用.parent()。next('select') –

相关问题