jquery的find问题

在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?

阅读 5.3k
8 个回答
<div id="example">example</div>
  1. 获取idexamplediv$('#example')

  2. 获取div的内容使用$('#example').html()

  3. 或者要获取类似<span>example<span>这样的可以使用$('#example').text()

  4. 要获取input的值可以使用$('#example').val()

  5. 最后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;
 });
 

望采纳

你这里$(data)会根据<div id="example"><p>example</p></div><button id="button">Load</button>创建一个jquery对象,这个对象中并不包含#example p这个选择器对应的后代元素,你可以把 success函数里面的内容改成

result = $("#example p");
$("#example").append(result);

如果有ID的话,为什么不直接使用$('#example')了?所有ID都是唯一的

都有ID了为什么还要用find?

ajax里面的success:fucntion(data)的data是请求地址返回的数据,可能是xml,html,json,jsonp,格式的数据.你怎么能$(data)找当前页面的dom节点呢。。。

$('<div id="example"><p>example</p></div><button id="button">Load</button>').filter('#example').find('p')

find 只能子元素
-div#example
-button#button
都是根元素,
filter 过滤找出同级元素

$('#example').html()

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进