var a = $("#red","<html><div><p id='red'>hello</p></div></html>").html(); 
alert(a); 
得到的值是hello。 
var a = $("#red","<html><p id='red'>hello</p></html>").html(); 
alert(a); 
得到的值是null。 
请问为什么会出现这种情况,为什么取不到值呢?或者在第二种情况下,我想取到p的值的话该怎么做?

解决方案 »

  1.   

    var a = $("#red","<html><div><p id='red'>hello</p></div></html>").html(); 
    把上面的这句修改如下:
     var a = $("<html><div><p id='red'>hello</p></div></html>").html();
    alert(a);  
    得到的值是><p id='red'>hello</p>  var a = $("#red","<html><p id='red'>hello</p></html>").html(); 
    同上:
     var a = $"<html><p id='red'>hello</p></html>").html(); 
    alert(a);  
    得到的值是hello。 楼主可以明白这是怎么回事了吧。另外:我也不知道jQuery为什么会解析出来是这样的,有高人路过,麻烦解释一下
      

  2.   

    jQuery选择器实际上取的是封装的DOM集合。
    <html><p id='red'>hello</p></html>的取值结果为[<p id='red'>hello</p>]
    你以它为查找范围,取它内部的 #red 当然是取不出东西的。
      

  3.   


    $("<html><p id='red'>hello</p></html>").find("#red").html();
      

  4.   

    不明白你是啥意思,我的目的是取出<html><p id='red'>hello</p></html>这段html里面id=red的p标签。
      

  5.   

    这个你试过吗,在哪个浏览器里可以?
    反正我是试了,在FF和IE8里面都是null。