0

クラス「menu-item-li」を含むすべての要素を通過し、href タグの値を配列内に配置するこのコードがあります。これを行うコードは次のとおりです。

var arr = new Array();
$(".menu-item-li").each(function() {
    arr.push($(this).attr("href"));
});

これらは次のようなものを返します。

  • link1.html
  • link2.html
  • link3.html
  • ...等々

今私がやりたいことは、配列内の各項目の前にテキストを配置することです。各項目の前に「website/」を置きたいとします。結果は次のようになります。

  • ウェブサイト/link1.html
  • ウェブサイト/link2.html
  • ウェブサイト/link3.html
  • ...等々

配列内の各項目の先頭に「website/」を追加できるように、Javascript コードを編集するにはどうすればよいですか?

ありがとう!

4

4 に答える 4

3

arr.push('website/' + $(this).attr("href"));ですが、メソッドを使用することもできます.map

var arr = $(".menu-item-li").map(function() {
    return 'website/' + $(this).attr("href");
});
于 2013-04-12T10:07:40.593 に答える
1

配列に<a>要素のリストが含まれている場合 - プロパティを使用しているため、クラス名にもかかわらず、それを想定していhrefます - 単純に:

var arr = $(".menu-item-li").map(function() {
    return "website/" + this.href;
});

this実際には、再度 jQuery onを呼び出してメソッドを呼び出す必要はありませんattr。無駄です。

于 2013-04-12T10:13:25.390 に答える
1
var arr = new Array();
$(".menu-item-li").each(function() {
    var str = "website/"+$(this).attr("href");
    arr.push(str);
});
于 2013-04-12T10:09:34.780 に答える
0

これを使って、

var arr = new Array();
$(".menu-item-li").each(function() {
    arr.push('website/' + $(this).attr("href"));
});
于 2013-04-12T10:12:18.707 に答える