jQuery取值问题

var a = $("#red","

hello

").html();
alert(a);
得到的值是hello。
var a = $("#red","

hello

").html();
alert(a);
得到的值是null。
请问为什么会出现这种情况,为什么取不到值呢?或者在第二种情况下,我想取到p的值的话该怎么做?

[quote]var a= $("#red","

hello

").text()
alert(a);
这样就是空,很奇怪。 [/quote]
这不奇怪,如果你用firebug调试下就明白了。
p标签被很多人特殊使用,因为总是有人使用

结尾,而不是


。你上面的代码其实可看可做
[code="html"]

hello

[/code]
这是jquery的一个容错机制

var a = $("#red","

hello

").text(); 试试。

改成这样:
[code="js"]
var a = $("

hello

").html();
[/code]

我说下我的理解。

html是内置标签,在jquery中解析时被忽略,只是做为一个文本为html的标识。
由此,$("

hello

")
等同于$("

hello

")
所以$("#red","

hello

").html();由于p下面无id为red的标签,当然返回无。

只要将html改为任意其它标签即可

赞同楼上的,
var a = $("#red",context).html();
的含义是在context的内部查找id=red的元素。‘html’会被忽略的,除非是 document.body