2011-12-07 83 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();