表白:黑白圣堂血天使,天劍鬼刀阿修羅。
講解對(duì)象:/click元素select會(huì)失效 怎么回事?document.querySelectorAll('select#categoryHistoryId')[0].click()
作者:融水公子 rsgz
===
今天來(lái)探究一個(gè)新的問(wèn)題,為什么document.querySelectorAll('select#categoryHistoryId');都已經(jīng)找到了對(duì)應(yīng)的select元素了
為什么后面模擬點(diǎn)擊click()會(huì)出現(xiàn)失效的情況呢document.querySelectorAll('select#categoryHistoryId')[0].click()
其實(shí)上面的寫法對(duì)于select標(biāo)簽是不行的。其實(shí)大家點(diǎn)擊這個(gè)select標(biāo)簽只是想顯示下面的子選項(xiàng) 然后點(diǎn)擊選中子選項(xiàng)?如果你是這個(gè)需求的話 其實(shí)可以直接跳過(guò)去,直接設(shè)置option value的值
比如這是源碼,你想要選中下面的這個(gè)子選項(xiàng)<option value="6048" data-default="0" data-update="undefined">Dresses(連衣裙)</option>那么我們可以這么寫 能選中你想要的子選項(xiàng)了var selectElement = document.querySelector('select#categoryHistoryId');selectElement.value = '6048'; // 設(shè)置選中的值
換句話說(shuō) 如果你僅僅是模擬點(diǎn)擊 那么觸發(fā)點(diǎn)擊事件就可以了var selectElement = document.querySelector('select#categoryHistoryId'); var clickEvent = new MouseEvent('click', { bubbles: true, cancelable: true, view: window }); selectElement.dispatchEvent(clickEvent);
===公眾號(hào):不浪仙人謝謝大家的支持!可以點(diǎn)擊我的頭像,進(jìn)入我的空間瀏覽更多文章呢。建議大家360doc[www.360doc.com]注冊(cè)一個(gè)賬號(hào)登錄,里面真的有很多優(yōu)秀的文章,歡迎大家的到來(lái)。
---
聯(lián)系客服