2016-09-29 7 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

要素のテキストは属性ではないので、属性セレクタで取得することはできません。ただし、textContentに「在庫」という単語がincludeという要素を返すようにNodeListをフィルタリングできます。

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 

これは、スプレッドとラムダを使用する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'をその関数を使用する配列に変換する必要があります。 –

関連する問題