首页 > JavaScript > jQuery 操作option
2010九月29

jQuery 操作option

之前写过一篇日志,《js操作option》,趁着这次系统重构,怎么看原来的实现方式都不爽。因为页面中使用了jQuery,于是就想用jQuery把原方法重写一下。因此也就有了本篇日志:jQuery操作option。

js清空option

之前清空option ,我的做法是遍历现有option,将其每个子元素都置空即可。现在使用jQuery来实现,我们只需要调用其支持的empty方法即可。

empty()

删除匹配的元素集合中所有的子节点。

再加上,我们要设默认值,所以此处清空select下所有option的方法,使用下面语句即可:

$('#selectId').empty().append( $("<option>这里放默认值</option>") );

js动态创建option

之前的做法,是借用其中间函数,来实现遍历Ajax返回的json对象。并使用new Option来创建option.现在我使用如下方法处理

for(var i = 0,len = jsondata.length; i<len; i++){
      $('#selectId').append($("<option value='"+jsondata[i].val+"'>"+jsondata[i].txt+"</option>"));
}

省去了一个看着繁重的中间函数,还减少了代码。最主要的是维护起来清晰易懂。^_^

文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2010/09/29/1935/
版权所有 © 转载时必须以链接形式注明作者和原始出处!

7 Responses to “jQuery 操作option”

  1. #1 ayanamist 回复 | 引用 Post:2010-09-29 17:44

    后面那个生成的代码,为什么不用createNode来实现?会不会性能更好更安全?
    我记得IE下innerHTML的效率不高。append貌似调用的就是innerHTML

    [回复]

  2. #2 simaopig 回复 | 引用 Post:2010-09-29 17:46

    @ayanamist
    这个效率问题我确实没有想,因为我这个数组本来也不大,

    另外,innerHTML和createNode 效率,貌似也不会差很多吧?当然这个我没有做过试验。嗯。

    [回复]

  3. #3 ayanamist 回复 | 引用 Post:2010-09-29 17:59
  4. #4 simaopig 回复 | 引用 Post:2010-09-29 18:01

    @ayanamist
    呵呵,好的。我晚上回家看一下,谢谢啦。

    PS:优化是无止境的,呵呵。

    [回复]

  5. #5 拆墙部队 回复 | 引用 Post:2010-10-15 12:57

    这篇文章就不评论了,顶一下,然后再阅读其他文章。

    [回复]

  6. #6 卡卡龙 回复 | 引用 Post:2010-10-25 14:49

    你这个重构还不如不重构

    [回复]

  7. #7 simaopig 回复 | 引用 Post:2010-10-25 14:50

    @卡卡龙
    没把这个当成重构。。只是正好改版,反正也用了jQ,就顺手改的。

    [回复]

发表评论

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)