我有这个页面,第一个按钮运行良好。
我想按下第二个按钮给我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>
答案 0 :(得分:4)
我想你想要一个空间:
$('body').load(url + " #link");
http://api.jquery.com/load/#loading-page-fragments
您似乎想要的只是该网址的href
元素的a#link
。因此,不要将其加载到<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"));
});
答案 1 :(得分:3)
修改强>
您正尝试在其他页面上捕获<a>
的href。试一试:
$.get(url+' #link', function(data) {
var $link = $(data).find('a').attr('href');
alert($link);
});
这是我最好的猜测,但它是在黑暗中拍摄的。
答案 2 :(得分:1)
目前,您的代码评估为.load('http://localhost/test/asdfasdf.php#link')
,其中#link
是无用的片段。你需要一个空间来产生jQuery自动DOM解析和元素加载的特殊行为。
$("body").load(url + " #link");
编辑:获取实际链接值:
$.get(url).done(function (html) {
console.log($(html).find('#link').attr('href'));
});
您还可以在body
回调内附加.done
。