html()函数在返回带HTML标签的内容时,它会自动规范HTML标签内容。例如:
<head>
<script type="text/javascript">
function check()
{
var info =$("#loading").html();alert (info);
if (info=='<a href="http://www.baidu.com">hello陈</a>'){ //注意这里带有</a>而原<td></td>中没有
alert ("ok!");
}else {
alert("error!");
}
return;
}
</script>
</head>
<body>
<input type="button" id="btn" value="检测" οnclick="check()">
<div class="tbl_tr_item"><table class="tbl">
<tr><td id="loading"><a href="http://www.baidu.com">hello陈</td></tr>
</table></div>
</body>
如果将<td>中的内容替换为<img src='/misc/images/loading.gif'/>检测中...,info的值中单引号变为双引号且没有标签结尾的/,即为<img src='/misc/images/loading.gif'>检测中...。
另:html()严格返回元素的HTML内容,即使是空格(或 返回值也是 )。如果内容为空,在对返回值做判断时可以用==(!=)""或==false(不能用!=,因为除了空其它的情况恒不等于false)。只有在返回一个不存在元素的HTML内容时为null。
综上,html()的返回值:若存在此元素但内容为空返回"",若不存在此元素返回null。
其它JQuery函数的返回值情况:
val():为空时返回"";//特殊情况:<select>内无<option>时,val()返回值为null;<input>单选框、复选框未设value时返回on;
如果值里含有&字符(例如 等字符实体),val()返回值将从&处截断,即只返回&之前的内容。
serialize():可解决val()遇&截断的问题,而且对于windows系统下的换行符"/r/n"也将被替换为UNIX系统下的换行符"/n"。