2015-10-10 51 views
0

我想從我的<select/>中刪除除第一個以外的所有選項。我知道children()不會遞歸地工作。選擇器中的'space`和find()之間的區別

$('#mySelect :gt(0)').remove(); 

$('#mySelect').find(':gt(0)').remove(); 

之間有什麼區別?

+1

兩者都是相同.. – Tushar

+1

在第二個方法,你可以使用'端()',得到'#mySelect' –

+1

在第一種方法同樣可以做到用'closest' – Tushar

回答

2

令人震驚的是我找不到這個問題的重複,其他的都是關於速度的。

有沒有顯着你引用的兩行代碼的區別,沒有。

var parentElement = $('#mySelect'); 
    /* 
    * there is some code.. 
    * do some thing on parent 
    */ 

現在,如果我們想獲得parentElement的孩子,我們可以使用

parentElement.find('.xtz');$('.xtz',parentElement)

而不是:如果我們已經有父元素參考

+1

就是這樣,你可以添加評論(來自Pranav)文本的答案,這是有幫助的 – Tushar

+1

ikr!這就是我誠實地問我的原因。 :p – Blauhirn

+0

請檢查https://24ways.org/2011/your-jquery-now-with-less-suck/請閱讀第一部分**選擇器速度:快還是慢?** – Tushar

1

find()方法是有用使用完整的選擇器

$('#mySelect .xtz');$('#mySelect').find('.xtz');

+0

也可以使用上下文選擇器在這種情況下,'$('。xyz',parentElement);' – Tushar

+0

@Tushar Answer編輯。謝謝! –

相關問題