[英]Best practice in finding a DOM element
我想在按下按鈕時切換(隱藏/顯示)一個元素。 我有兩種實現方法:
根據元素的類名查找元素,例如$('.my-content')
根據元素相對於按鈕的相關DOM位置查找元素,例如$('#my-button').parent().next().next().next()
但是,在我看來,上述任何方法都不是非常可靠的,因為如果有人更改了HTML代碼,則上述方法將不起作用。 我還缺少更可靠的東西嗎?
一個很好的做法是將 HTML,CSS和JS 分離 。
將javascript綁定到DOM元素時,應使用javascript選擇器 。 基本上是帶有一些自定義前綴(例如js-
)的類,這些前綴僅用於javascript目的(而不是CSS樣式)。
因此,無論何時更改DOM樹結構或CSS類名稱,您仍然可以使用工作的JS選擇器
HTML
<div class="my-content js-toggle-element"></div>
JS
$('.js-toggle-element')
CSS
.my-content{ ... }
另外,使用Javascript選擇器:
允許您將來在其他元素中輕松應用/取消該行為,只需在HTML中添加/刪除該類,而根本不影響CSS
<div class="my-content js-toggle-element"></div> ... <div class="another-content-to-toggle js-toggle-element"></div>
除此之外,沒有真正的約定。 只要嘗試確保閱讀您的代碼的人了解發生了什么。
使用jQuery將是最簡單的方法。 像這樣 -
$( ".target" ).toggle();
通過更改CSS顯示屬性,匹配的元素將立即顯示或隱藏,而不會產生動畫。 如果最初顯示該元素,則它將被隱藏; 如果隱藏,它將顯示。
如果元素的類或元素在DOM中的位置正在更改,則可以嘗試使用內部文本選擇它
$("button:contains('buttontextgoeshere')")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.