javascript - 加载页面片段时 jQuery load(URL) 不起作用?

标签 javascript jquery html

我有这个页面,第一个按钮工作正常。

我想在按第二个按钮时给我 href 中的链接,我尝试了这样的操作,但我得到了整个页面,而不仅仅是链接的值,为什么?

<html>
<head>
  <script src="jquery.js"></script>
  <script type="text/javascript">
    $(document).ready(function(){

      var url = "http://localhost/test/asdfasdf.php";

      $("#button").on("click", function() {
        $('body').load( url  );
       });

      $("#button2").on('click',function(){
        $('body').load( url +"#link" );
      });
    });
</script>
</head>
<body>
  <input type="button" id="button" value="load" />
  <input type="button" id="button2" value="search for a tag" />
</body>
</html>

最佳答案

我想你想要一个空间:

$('body').load(url + " #link");

http://api.jquery.com/load/#loading-page-fragments

您似乎想要的只是 href a#link的该 URL 处的元素。因此,不要将其加载到<body>中,只需发出AJAX请求,然后查看结果:

$.ajax({
    type: "GET",
    url: "http://localhost/test/asdfasdf.php",
    dataType: "html"
}).done(function (data) {
    var the_link = $(data).find("#link");
    alert(the_link.attr("href"));
});

并输入 href<body> ,将此行添加到 .done() 中方法:

$("body").html(the_link.attr("href"));
// or
$("body").append(the_link.attr("href"));

但是如果你真的想加载a#link元素进入 <body> ,执行之前的操作,然后查找 a#link元素并获取其属性:

$('body').load(url + " #link", function () {
    var the_link = $("#link");
    alert(the_link.attr("href"));
});

关于javascript - 加载页面片段时 jQuery load(URL) 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15710861/

相关文章:

javascript - TypeScript:类/方法中变量/属性的声明

javascript - Chrome/Safari (webkit) 中的 Facebook Javascript SDK 登录问题 - 不安全的 Javascript 尝试

javascript - 如何使用 angular2 根据响应值分配图像

jquery图像背景chrome问题

javascript - 如何从浏览器中的字体大小获取行高?

javascript - FileReader readAsText 将文件内容作为字符串存储在结果属性中,但是当 console.log 这个结果时,没有返回任何内容。

javascript - obj.attr ('id' ) 返回未定义但 obj.getAttribute ('id' ) 有效。为什么?

javascript - jQuery UI 可选 : how to get mouse coordinates on 'stop' event?

javascript - d3.json 不接受在 d3 甘特图中绘制的查询结果

javascript - jQuery Ajax - 仍在重新加载页面 - Laravel 分页