a[0] 是undefined, 就像 {}.a 是undefined, 是未定义
empty本身不是undefined和null
isset()在php中用来检测变量是否设置,该函数返回的是个布尔值,即true/false。在javascript中,你可以用!(typeof(a) == "undefined")来代替,或者写到一个函数里。举例:var a = 12if(!(typeof(a) == "undefined")) {alert("a已定义!")}empty()在php中用来检查一个变量是否为空。在javascript中,你可以直接用if(变量)直接判断,因为在javascript中,变量会自动转化为需要的类型。举例:var a if(a) {alert("a is defined!")}。但是这里也有点问题,比如你如果设置a = null,或者a = undefined的话,a转化为布尔值还是为false,这是不可避免的。
empty()、html("")和text("")在删除匹配元素内内容时是一样的。jQuery源码中实现有所不同,但效果相同。你可以测试一下源码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />
<title>无标题文档</title>
<script src="../scripts/jquery-1.4.2.min.js" type="text/javascript"></script>
<script>
$(function(){
$('#btnEmpty').click(function(){
$('#aim').empty()
alert("empty()")
})
$('#btnHtml').click(function(){
$('#aim').html("")
alert('html("")')
})
$('#btnText').click(function(){
$('#aim').text("")
alert('text("")')
})
})
</script>
</head>
<body>
<div id="aim">
<ul>
<li>111111111</li>
<li>222222222</li>
<li>333333333</li>
<li>444444444</li>
</ul>
</div>
<button id='btnEmpty'>empty()</button>
<button id='btnHtml'>html("")</button>
<button id='btnText'>text("")</button>
</body>
</html>
一、html(val):设置每一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档。
返回值:jQuery
参数:val (String) : 用于设定HTML内容的值
示例:
HTML 代码:
<div></div>
jQuery 代码:
$("div").html("<p>Hello Again</p>")
结果:
[ <div><p>Hello Again</p></div>]
二、empty():删除匹配的元素集合中所有的子节点。
返回值:jQuery
示例:把所有段落的子元素(包括文本节点)删除
HTML 代码:
<p>Hello, <span>Person</span><a href="#">and person</a></p>
jQuery 代码:
$("p").empty()
结果:
<p></p>
三、text(val):设置所有匹配元素的文本内容
与 html() 类似, 但将编码 HTML (将 "<" 和 ">" 替换成相应的HTML实体).
返回值:jQuery
参数:val (String) : 用于设置元素内容的文本
示例:
HTML 代码:
<p>Test Paragraph.</p>
jQuery 代码:
$("p").text("<b>Some</b>new text.")
结果:
[ <p><b>Some</b>new text.</p>]