-1
我目前正在建設它必須找到一個網站的特定頁面的Chrome擴展特別是登錄/註冊在頁面中,註冊/註冊頁的.innerHTML屬性相匹配, 關於頁面和聯繫我們頁面。JavaScript的正則表達式的任何元素
我想通過首先獲取頁面中的元素列表(我已經完成)來實現此目的。現在我需要檢查元素的innerHTML,使其成爲DOM中的一個葉節點幷包含關鍵字的一部分,並且我正在嘗試使用正則表達式來完成此操作。我設法構建了一個正則表達式,該正則表達式成功返回元素的開始或結束標記(即標記名稱及其屬性)之間的內容,而不是innerHTML。下面是我迄今所做的(與該關於頁面的例子:
var list = document.body.getElementsByTagName("*");
var aboutElement = /^[^<.+>].*About.*[^(<.+>]$/i;
for (var i = 0; i <= list.length; i++) {
if ((aboutElement.test(list[i].innerHTML)) || (aboutElement.test(list[i].alt))) {
list[i].click();
}
}
任何想法,我應該給它添加使得其僅匹配葉節點(不包含其他節點的節點)而不是什麼在開始或結束標籤?我也認爲,我已經做了它會匹配innerHTML中的所有內容,因爲。*部分,所以我可能需要改變它。非常感謝!
您是否嘗試過使用循環來檢查'.textContent'和'.innerHTML'的元素?如果目標元素是'form'元素,則不會有'.innerHTML',而是檢查'name','input'元素的'.value' – guest271314
您可能剛剛救了我。我不知道.textContent。我認爲.innerHTML是獲取元素內容的唯一方法。 我會試一試!謝謝! @ guest271314,我會編輯問題以使其更清晰。 –
爲什麼不訪問元素的innerHTML,textContent或innerText屬性並執行'String.search()'。最糟糕的情況是使用'nodeType == 3'(文本節點)搜索它的子元素並讀取'nodeValue'。我的意思是,在應用正則表達式之前,可能還有更多的方法。 – Redu