对input无法使用append在其后添加节点,为什么?

<!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/html; charset=gb2312" />

<title>无标题文档</title>

<script src="jquery.js"></script>

<script>

function check(){

var $mobile = $("#shouji");

if($mobile.attr("value") == ""){

var oht = "<font>内容为空</font>";

$mobile.append(oht);

}

return true;

}

</script>

</head>

<body>

手机号码验证:<input id="shouji" type="text" value="" onblur="return check()"/><br/>

</body>

</html>


hello5world
浏览 2725回答 3
3回答

ruibin

此处存在的唯一问题是input为单标签。而jquery中append函数的本质是设置innerHTML,既然是但标签,那么就没有innerHTML所以这里append无效。改进方法是:将$mobile.append(oht);换成$mobile.attr('value', oht)。不过你这个font写在这里没有意义,建议删除。

走向流沙

append是追加内容到元素节点之间(最后面),你的这个value是他的属性,不是元素节点。你写的这语句$mobile.append(oht);改成$mobile.attr("value",oht);
打开App,查看更多内容
随时随地看视频慕课网APP