簡體   English   中英

children vs selector - jQuery

[英]children vs selector - jQuery

為了簡單起見,我將把問題縮小到下面。 我在click js函數中運行了一個大代碼。 表示我已添加alert()

HTML

<ul>
  <li>Test li 1</li>
  <li>Test li 2</li>
  <li>Test li 3</li>
  <li>Test li 4</li>
  <li>Test li 5</li>
</ul>

JS

方法1

$('ul li').click(function(){alert('hi');});

方法2

$('ul').children().click(function(){alert('hi');});

方法1和方法2都工作正常。

哪一個更好 ? 使用選擇器或使用子方法更好嗎? 當我們可以使用選擇器時,有一個子方法的目的是什么?

測試小提琴

我只是抓住基礎知識,希望不知道某些事情不是犯罪。 謝謝

雖然這兩段代碼在樣本HTML上都能正常工作,但它們並不完全相同。

.children返回所有子元素(無論它們是否為“li”)。

"ul li"作為選擇器返回"ul li"所有“li”后代,無論它們是否是孩子。

這兩個是等價的,只選擇“ul”父級的“li”子元素:

$('ul > li').click(function(){alert('hi');});
$('ul').children("li").click(function(){alert('hi');});

至於哪個更好(原始問題),我懷疑沒有真正的答案,並將取決於你的實際要求和HTML(當你問哪個'更好'你是什么意思?表現?可維護性?)。

通常前者會使用瀏覽器的CSS選擇器引擎,你所使用的選擇器是支持的,后者總是使用jquery構建的代碼(我想)所以在大多數情況下我會選擇前者。

至於

哪一個更好 ?..

更新

實際上,這取決於HTML結構......如果是這樣的話,你在ul (第一級)中有少量的<li>用於子項選擇器更好

你可以在js.perf ... 鏈接這里查看

但如果你有大量的<li> (在第一級),子選擇器會變慢..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM