0

我正在使用 jQuery,它的 .map 功能可以创建一个可以作为 JSON 字符串发送的数组。

每当我尝试发送它时,都会收到一条错误消息:e.text is not a function

这是我的 HTML

 <a class="hrefURL" href="www.google.com">Google</a>

这是jQuery

Links: $("[class=hrefURL]").map(function (i, e) {
         return { LinkURL: e.attr('href'), LinkText: e.text() };
         }).toArray()

任何帮助将不胜感激。

谢谢!

4

2 回答 2

2

e是一个 dom 元素,而不是一个 jQuery 对象。

{ LinkURL: $(e).attr('href'), LinkText: $(e).text() };

虽然我不太确定为什么它没有首先失败e.attr

于 2013-05-28T18:10:07.767 回答
2

映射函数的第二个参数是 DOM 元素,而不是 jQuery 对象:

$('a[class="hrefURL"]').map(function (i, e) {
    var link = $(e);
    return { LinkURL: link.attr('href'), LinkText: link.text() };
}).toArray()

或避免额外的 jQuery 之旅:

$('a[class="hrefURL"]').map(function (i, e) {
    return { LinkURL: e.href, LinkText: e.innerText };
}).toArray()
于 2013-05-28T18:26:18.423 回答