首页 > jquery的find问题

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?


$('<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>
  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;
 });
 

望采纳


@kevinzou 说的对啊


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

【热门文章】
【热门文章】