2 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊
.closest()
方法只遍歷parents,不遍歷children。
該區(qū)域位于容器中.amenities-filters-inner
而不是列表元素內(nèi),因此它找不到.amenities-id
.
更改容器的背景顏色以進(jìn)行調(diào)試。
.amenities-filters-inner{ background: red; }
如果您不希望列表項(xiàng)之間有間隙,請(qǐng)不要使用邊距。使用padding-top
andpadding-bottom
代替。
該
closest()
方法遍歷 Element 及其父級(jí)(指向文檔根),直到找到與提供的選擇器字符串匹配的節(jié)點(diǎn)。將返回自身或匹配的祖先。如果不存在這樣的元素,則返回null
。
https://developer.mozilla.org/en-US/docs/Web/API/Element/closest

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊
通過單擊紅色標(biāo)記區(qū)域內(nèi)部,您將在兩個(gè)元素之間<li>
單擊,這意味著您位于該<ul>
元素內(nèi)部。打電話給你帶來closest()
; 您正在尋找的是元素內(nèi)部(即下方)的子元素。嘗試改變target
<div>
<ul>
element = e.target.closest(".amenity_id");
在你的腳本中
element = e.target.querySelector(".amenity_id");
看看它是否有效。
添加回答
舉報(bào)