2012-12-07 57 views
0

我有這段代碼,我已經刪除了我的第一個「選項」,因爲第一個說「請選擇:」。無論如何,問題是,當我專注於我的第一個「選擇」它從每個選擇中刪除第一個「選項」。我如何才能將它從目前僅有的焦點中刪除?如何使jquery只關注當前的HTML「選擇」並且只刪除當前的「選項」

$(document).ready(function(){ 

    $('select').live('focus',function() { 
    $('.firstoption').remove(); 
    }); 

}); 
+0

閱讀'這個' – Colleen

+0

http://stackoverflow.com/questions/3127429/javascript-this-keyword – Colleen

回答

0
$(document).ready(function(){ 

    $('select:first').on('focus',function() { 
    $(this).children("option:first").remove(); 
    }); 

}); 

例子:http://jsfiddle.net/Ky6zq/2/

這將執行每一個選擇接收焦點的時候,所以你能不能讓每次刪除元素。爲了防止這種問題的嘗試:

$(document).ready(function(){ 

    $('select:first').one('focus',function() { 
    $(this).children("option:first").remove(); 
    }); 
}); 

例子:http://jsfiddle.net/Ky6zq/1/

+0

這將是第一次選擇每次,而不是當前選擇。 – Colleen

+0

編輯:這是更好:) – Colleen

+0

@Colleen謝謝coleen –

0
$(document).ready(function(){ 
    $(document).on('focus', 'select', function() { 
     $('.firstoption', this).remove(); 
    }); 
}); 

您應該使用的on()委派的版本,而不是live()它被廢棄了。

請確保您使用第一個選項的類,以便每次選擇接收焦點時都不會刪除選項。

+0

可以用'one()'來防止每次刪除選項嗎? –

+0

是的,我有「.firstoption」作爲實際上第一個選項的類。不只是爲了示範:P謝謝! – user1881118

+0

@ kmb385 - 當將事件綁定到文檔或另一個非動態元素(如此)時,不可以。 – adeneo