- JScript code
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script src="jquery/jquery-1.7.2.min.js" type="text/javascript"></script> <script type="text/javascript"> $.fn.extend({ "setJson": function (json) { var id = this.id; var $form = $(this); //清空原有表单 $form.find("select").each(function () { this.selectedIndex = 0; }); $form.find(":hidden").val(""); //# B 必须注释这一行,换成下一行( #C ), IE8(部分电脑) 和 Chrome 后面的行( #D )才能正常运行, 为什么? //clearHidden(this.id); //# C $form = $("#"); //给表单赋值 $("#sel").val("1"); //# D } }); function clearHidden(id) { $("#"+id).find(":hidden").val(""); } function test() { var o = { "sel": "1" }; $("#bd").setJson(o); } </script> </head> <body id="bd"> <input type="hidden" value="1" id="vtid" /> <select id="sel"> <option value="0">---请选择---</option> <option value="1">第一项</option> <option value="2">第二项</option> </select> <input type="button" value="test" onclick="test()" /> </body> </html>
------解决方案--------------------
回帖有分??
------解决方案--------------------
先弄清楚this指的是什么
------解决方案--------------------
$form.find(":hidden").val(""); 这里的 $form 为 select 对象
这个对象 不存在 属性为hidden 的子元素
所以 $form.find(":hidden").val(""); 这语句的赋值没有执行