2011-12-07 82 views
1

我的HTML代码的jQuery选择删除项目

<select name="test[]" id="test_0"> 
    <option value="">...</option> 
    <option value="Test 1">Test 1</option> 
    <option value="Test 2">Test 2</option> 
    <option value="Test 3">Test 3</option> 
</select> 
<select name="test[]" id="test_1"> 
    <option value="">...</option> 
    <option value="Test 1">Test 1</option> 
    <option value="Test 2">Test 2</option> 
    <option value="Test 3">Test 3</option> 
</select> 

我的jQuery代码

$("#test_0 option:eq(1)").remove(); 
$("#test_1 option:eq(2)").remove(); 

如果我删除一个项目,我怎么能保持它在内存中到后来在同一更换放置

感谢您的帮助......

克里斯

+2

可以隐藏()呢? –

+0

@ U-DON:'选项'元素不能隐藏在某些浏览器中。 – RightSaidFred

回答

0

可以隐藏它:

$("#test_0 option:eq(1)").hide(); 
$("#test_1 option:eq(2)").hide(); 

但林不知道它适用于所有的浏览器。否则,你可以克隆它,并把它保存在一个变量,然后将其删除:

var option1 = $("#test_0 option:eq(1)"). 
var option1clone = option1.clone(); 
//now remove the original 
option1.remove 
+0

工作正常,但我没有在所有浏览器中测试过。谢谢 – Chris

+0

@Chris:所以你*不需要“以后在同一个地方替换它”? – RightSaidFred

+0

是的。做$(“#test_0选项:eq(1)”)。show(); “隐藏”在Firefox上运行良好后 – Chris

-1

你可以只隐藏起来,需要时以后显示:

 
$("#test_0 option:eq(1)").hide(); 
//and for showing 
$("#test_0 option:eq(1)").show(); 

+0

在某些浏览器中不起作用。 – RightSaidFred

+0

如果你投下我的报复,你的解决方案是打破。不要个人承担。如果你没有,没关系。 – RightSaidFred

+0

老兄我没投下你的男人..! –

3

使用。 detach取而代之,它更适合于稍后重新插入元素,因为它保留了附加到元素的数据和事件。

var option = $("#test_0 option:eq(1)").detach(); 
    $('#test_0').append(option); 
+0

不幸的是,这并没有回答这个问题,因为这不会在稍后的相同位置取代它。 – RightSaidFred

0

您可以使用删除所有其他选择,除了比一个: -

$("#test_0 option.not(':eq(1)').remove();