我需要自動調用DOM元素上的函數。下面的代碼有效,但我想知道是否有更好的方法。使用jQuery在元素上調用函數
$('#toc > ul > li').first().find('a').each(loadTopic);
我的選擇器只會返回一個元素,所以運行「each」看起來很駭人聽聞。有沒有更好的方法在我的錨元素上調用「loadTopic」?
我需要自動調用DOM元素上的函數。下面的代碼有效,但我想知道是否有更好的方法。使用jQuery在元素上調用函數
$('#toc > ul > li').first().find('a').each(loadTopic);
我的選擇器只會返回一個元素,所以運行「each」看起來很駭人聽聞。有沒有更好的方法在我的錨元素上調用「loadTopic」?
使用.each
大約是盡善盡美這裏,不僅是因爲它會自動從jQuery對象中通過本機的DOM元素,而不是包裹在jQuery對象本身。哎呀,它甚至設置this
是你的元素。
你可以實現一個.call()
插件,只能在一個jQuery對象中的第一個元素,但它是有點兒毫無意義......
創建簡單的jQuery插件,並呼籲$('#toc > ul > li').first().find('a').myPlugin();
相同 - 不是一個好的答案 - 任何行爲良好的插件都會在內部調用'.each '反正...... – Alnitak
如果你有一個元素,每個元素都不會被使用,但是我的解決方案會更好一點 –
這真的取決於你的HTML佈局,但這不是真正的地方對於這種類型的問題。 [嘗試在這裏,而不是](http://codereview.stackexchange.com)。 – SpYk3HH
以及所有的尊重,我不認爲它應該取決於我的佈局。底線是我想選擇一個元素並調用一個函數,而不是綁定到任何事件(點擊等)。我的選擇器工作。我只是想知道是否有更好的方法。 – Brett
我的觀點很簡單,根據您的HTML,可能有更好的方式來獲得選擇,但是,因爲它,我真的沒有更好的方式,除了可能縮短它像這樣:'$('#toc> ul> li:first a')。each(loadTopic);'。 ':first'與'.first()'相同,然後a標籤當然與'.find('a')' – SpYk3HH