在jquery中,使用find为什么对id不起作用?
如我的html是这样:
<div id="example">example</div>
使用jquery代码.find("#example");
再append
没有效果,请问应该怎样写才能获取到id为example的内容?
我的意思是我想用ajax来获取网页的一部分内容,完整代码:
<html>
<head>
<script type="text/javascript" src="http://cdn.staticfile.org/jquery/1.4.4/jquery.min.js"></script>
<script>
$("#button").live("click", function(){
$.ajax({
type: "POST",
url: "",
success: function(data){
result = $(data).find("#example p");
$("#example").append(result);
}
});
return false;
});
</script>
<div id="example"><p>example</p></div><button id="button">Load</button>
</body>
</html>
ajax的内容也是<div id="example"><p>example</p></div><button id="button">Load</button>
这样该怎么写来获取example?
$('<div id="example"><p>example</p></div><button id="button">Load</button>').filter('#example').find('p')
find
只能子元素
-div#example
-button#button
都是根元素,filter
过滤找出同级元素
$('#example').html()
如果有ID的话,为什么不直接使用$('#example')了?所有ID都是唯一的
都有ID了为什么还要用find?
你这里$(data)会根据<div id="example"><p>example</p></div><button id="button">Load</button>
创建一个jquery
对象,这个对象中并不包含#example p
这个选择器对应的后代元素,你可以把 success函数里面的内容改成
result = $("#example p");
$("#example").append(result);
<div id="example">example</div>
获取
id
为example
的div
用$('#example')
获取div的内容使用
$('#example').html()
或者要获取类似
<span>example<span>
这样的可以使用$('#example').text()
要获取input的值可以使用
$('#example').val()
-
最后find方法一般是用于获取子元素,比如获取div下的p的内容
<div id="example">
<p>example</p>
</div>
$('#example').find('p').text()
你应该是想要这个效果吧:
$.ajax({
type: "POST",
url: "",
success: function(data){
//result = $(data).find("#example p");
//$("#example").append(result);
$("#example p").text(data);// ?,如果data是HTML就用`.html()`;
}
});
return false;
});
望采纳
@kevinzou 说的对啊
ajax里面的success:fucntion(data)的data是请求地址返回的数据,可能是xml,html,json,jsonp,格式的数据.你怎么能$(data)找当前页面的dom节点呢。。。