ジント兄さんのテストブログ

ジント兄さんがFC2ブログのカスタマイズを練習するために作ったブログです。

カテゴリ別のリンクを探している方、どんな記事があるかをもれなく把握したい方は、記事一覧のページをご覧になってください。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Array.prototype.map.callを使ってページのアンカーテキストをカンマ区切りで取得

var hoge = document.getElementsByTagName('a');
var fuga = [].map.call(hoge, function(x){return x.textContent;});
var piyo = fuga.join(',');

ページのアンカーテキストをカンマ区切りで取得したい。そう思うことは時々ある。getElementsByTagName()やquerySelectorAll()などで得たNodeListオブジェクトは配列のようなものだと思っても配列ではないので、Array.prototypeに生えているmapメソッドを使いたいと思ってもhoge.map()みたいな普通のやり方で使うことはできない。そういうときに、Function.prototype.callを使って、Array.prototype.map.call(hoge, mapに渡したい引数);ってやれば、mapメソッドを呼び出せちゃう。Array.prototype.map.callって書くのダルい。[].map.callって書いてもいける。

なんでこんな事を書こうと思ったのかというと、最近まで[].slice.call(hoge);で配列を作ってからmapメソッドを使ってたけど、まわりくどい事をしていたと気付いたから。

コメント

0: ジント兄さん
メッセージをどうぞ。

トラックバック

この記事のトラックバックURL:http://jislotz.blog.fc2.com/tb.php/14-8a736b5d

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。