2016-10-12 14 views
1
var downloadLinks = document.querySelectorAll('[href*="/Download"]'); 

すべての要素を持つNodeListが表示されますが、すべてのノードから単一の配列としてhrefという値を抽出するにはどうすればよいですか?Nodelistからhrefを抽出する

は私がreturn Array.from(downloadLinks)を試みたが、PhantomJSはES6をサポートしていないようなので、私はTypeError: undefined is not a function

+3

あなたは何を知っていないのですか?コレクションを反復するには?どのようにプロパティを読むには?新しい配列を作るには?これは何百ものJavaScript/jQueryの投稿を持っている人にとってはとても簡単な作業のようです。 –

答えて

0
Array.prototype.map.call(document.querySelectorAll("[href*="/Download "]"), function (e) { 
    return e.getAttribute('href'); 
}); 
+0

1.クエリーセレクタの属性がちょっと変わっています2.なぜ[]] .map.call(document.querySelectorAll( '[href * = "/ Download"]')、関数(e){return e .href;}); '? –

3
var downloadLinks = document.querySelectorAll('[href*="/Download"]'); 
var arrHREF = []; // create an Array to save hrefs 
var i = 0; 
for(; i<downloadLinks.length; i++) { 
    arrHREF.push(downloadLinks[i].href); // push hrefs in array 
} 

を取得したり、あなたが(実行括弧内の変数を宣言するのループのプロパティを使用して)として、1行でそれを書くことができ

に見えます
for (var downloadLinks = document.querySelectorAll('[href*="/Download"]'), arrHREF = [], i = 0; i < downloadLinks.length; i++) arrHREF.push(downloadLinks[i].href); 
+1

私はより明確にすべきだった。私は同じ方法でやっただろうが、何度もこれをやっているので、私は効率的なやり方を探していて理想的には1本のライナーを探しているのだろうか? – 3zzy

+1

@ 3zzy:それはhttp://codereview.stackexchange.comのためのものです。 –

+1

@squintすごい、初めて聞いたことがあり、今すぐチェックしよう!ありがとう。 – 3zzy

関連する問題