我在一两天前发布了这个,收到了一个对JSfiddle起作用的答案,但是对我的实际代码没有用。
<div id="PublicResults">
<h2>
<dl>
<dt>
<a onmouseout="swho.alone.OnMouseOut(event)" onmouseover="swho.alone.showPopup(event, 'DR647E481', 'pra**', '', '', 'everyone', 'closed')" href="/SWApp/detailAction.do?key=DR647E481&search=pra**&soundex=&stanfordonly=&affilfilter=everyone&filters=closed">Ajay Prakash</a>
</dt>
现在,我尝试了$ jq(“#PublicResults a”)。attr(“href”),它在jsfiddle中工作,但是没有在页面上工作(我的控制台读取未定义)。但是,当我尝试$ jq(“#PublicResults a [href]”)。attr(“href”)时,我得到当前网页的网址 - 所以我想问题是.attr()只返回第一个元件
所以我的问题是双重的 - 如果我上面写的是正确的,我如何使.attr()返回所有元素。如果没有,我该怎么做才能在href中检索网址?
答案 0 :(得分:2)
你要在所有链接的数组列表中循环,你想要抓取:
$jq("#PublicResults a").each(function()
{
alert($(this).attr("href"));
});
答案 1 :(得分:0)
如果你的jQuery实例绑定到$jq()
(而不是通常的$()
或jQuery()
),那么$jq("#PublicResults a[href]").attr("href")
应该有效。你可以发一个链接到它不起作用的地方吗?
我怀疑其中一项:
#PublicResults
元素添加到页面$jq()
功能可能不可用答案 2 :(得分:0)
您可以使用map从jQuery包装对象中提取所有href。例如
$('...').map(function() { return $(this).attr('href'); });
这将返回一个jQuery包装的数组,以获得正常的JavaScript数组,只需使用.get()
。