日期:2014-05-16  浏览次数:20345 次

JQuery下拉列表动态添加option的问题,百分百结贴
页面上有俩个下拉框,初始化的时候动态加载option项目,遇到了这样的问题,代码如下
var $newItem = $("<option value=''>-请选择-</option>");
  $drpCountry.append($newItem);
  $drpProvince.append($newItem);

此时页面加载后 drpProvince 下拉框 加载了这个新项,而drpCountry没有加载,
换了种写法:
$drpCountry.append($("<option value=''>-请选择-</option>"));
  $drpProvince.append($("<option value=''>-请选择-</option>"));
这样就可以了

那么针对第一种情况,大家有没有好的写法,推荐下。

------解决方案--------------------
去掉$这个符号试试
------解决方案--------------------
使用jquery标准写法吧!
$('#select1,#select2').append(appoption);和$('select').append(appoption);任选一种

HTML code
<html>
<body>
<select id="select1"></select>
<select id="select2"></select>
<script language="javascript">
    var appoption = "<option value=''>-请选择-</option>";
    //$('#select1,#select2').append(appoption);
    $('select').append(appoption);
</script>
</body>
</html>

------解决方案--------------------
var newItem = "<option value=''>-请选择-</option>"; // 直接字符串好了,用jquery包装一层反而浪费资源
$drpCountry.append(newItem);
$drpProvince.append(newItem);
------解决方案--------------------
看看API吧,jquery中的append方法传入的参数类型是String, Element!
------解决方案--------------------
1、append() 方法在被选元素的结尾(仍然在内部)插入指定内容。
JScript code
$(selector).append(content);

------解决方案--------------------
$drpCountry.append($newItem.clone());
$drpProvince.append($newItem.clone());

明白了没