2016-09-29 53 views
0

元素我用這個:查找使用的innerText

document.querySelectorAll('div.pu-g div.pure-u div.des.3-mb-1 div.ng-spe span.ng-binding.ng-scope[contains(text(),'Stock')]') 

但我收到此錯誤:

SyntaxError: missing) after argument list 

我嘗試做的是採取這innerText屬性包含特定單詞的所有元素。是否有可能在JS中使用簡單的DOM?

+0

'''是衝突的 – Li357

回答

0

由於元素文本不是屬性,我不認爲你可以用屬性選擇器來抓取它。但是,您可以過濾NodeList以返回textContent中單詞「Stock」的元素。

const stocks = [...document.querySelectorAll("div.pu-g div.pure-u div.des.3-mb-1 div.ng-spe span.ng-binding.ng-scope")] 
    .filter(elements => elements.textContent.includes("Stock")) //note that `includes` is case sensitive 

這是使用傳播和lambdas的ES6代碼。這是一個ES5解決方案。

var stocks = [].slice.call(document.querySelectorAll("div.pu-g div.pure-u div.des.3-mb-1 div.ng-spe span.ng-binding.ng-scope").filter(function(elements) { 
    return elements.textContent.includes("Stock"); 
}) 
+0

據我所知,不可能在DOM中使用某些東西嗎?我的意思是說,即document.querySelectorAll('')。filter() – Mati

+0

'filter'是一個數組函數,你需要將NodeList'document.querySelectorAll'轉換成一個數組來使用它上面的函數。 –