0

我有这段代码,它遍历所有包含“menu-item-li”类的元素,并将它们的href标签的值放入一个数组中。这是这样做的代码:

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

这些将返回如下内容:

  • 链接1.html
  • 链接2.html
  • 链接3.html
  • ...等等

现在我想做的是在数组中的每个项目前面放一些文本。假设我想把“网站/”放在每个项目的前面。结果应该是这样的:

  • 网站/link1.html
  • 网站/link2.html
  • 网站/link3.html
  • ...等等

如何编辑我的 Javascript 代码,以便可以将“website/”添加到数组中每个项目的前面?

谢谢!

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
var arr = new Array();
$(".menu-item-li").each(function() {
    var str = "website/"+$(this).attr("href");
    arr.push(str);
});
于 2013-04-12T10:09:34.780 回答
1

如果数组包含一个<a>元素列表——我假设尽管有类名,因为你正在使用href属性——那么它只是:

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

您实际上不需要再次调用 jQuerythis并调用该attr方法,这是一种浪费。

于 2013-04-12T10:13:25.390 回答
0

用这个,

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