Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Jquery检索链接_Javascript_Jquery_Screen Scraping_Hyperlink - Fatal编程技术网

Javascript 使用Jquery检索链接

Javascript 使用Jquery检索链接,javascript,jquery,screen-scraping,hyperlink,Javascript,Jquery,Screen Scraping,Hyperlink,我在一两天前发布了这篇文章,收到了一个在JSFIDLE上有效的答案,但在我的实际代码上却不起作用 <div id="PublicResults"> <h2> <dl> <dt> <a onmouseout="swho.alone.OnMouseOut(event)" onmouseover="swho.alone.showPopup(event, 'DR647E481', 'pra**', '', '', 'everyone', 'clo

我在一两天前发布了这篇文章,收到了一个在JSFIDLE上有效的答案,但在我的实际代码上却不起作用

  <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”),它在JSFIDLE中工作,但在页面上不工作(我的控制台显示为undefined)。但是,当我尝试$jq(“#PublicResults a[href]”)时,我会得到当前网页的url,所以我想问题是.attr()只返回第一个元素


所以我的问题有两个——如果我上面写的是正确的,那么如何使.attr()返回所有元素。如果没有,我应该如何在href中检索url

如果您将jQuery实例绑定到
$jq()
(而不是通常的
$()
jQuery()
),那么
$jq(“#PublicResults a[href]”)。attr(“href”)
应该可以工作。你能在哪里贴个链接吗

我怀疑以下情况之一:

  • 在将
    #PublicResults
    元素添加到页面之前,您可能正在运行jQuery代码
  • $jq()
    函数可能不可用
  • 其他东西可能正在改变你的链接href

  • 您可以使用map从jQuery包装的对象中提取所有href。例如

    $('...').map(function() { return $(this).attr('href'); });
    

    这将返回一个jQuery包装的数组,要获得一个普通的JavaScript数组,只需使用
    .get()

    您必须循环查找所有链接的数组列表是否要刮取:

    $jq("#PublicResults a").each(function()
    {
       alert($(this).attr("href"));
    });
    

    呃,$jq函数在我执行“$jq”(#PublicResults a[href]”)时起作用,我正在firebug的控制台上运行代码来测试italso,我如何加载我从中抓取的url?