jQuery和链接方法.html()。val()

时间:2014-02-12 00:58:48

标签: jquery

我需要修改一些代码,而不是将一堆代码包装在if / else语句中,或者创建一个自定义插件来确定元素类型是否可以在不产生分支的情况下执行以下操作?

  1. 我有这样的当前代码,这很好 - 它填充了一个div。

    $('#someElement').html('some text')
    
  2. 但是,在某些情况下,“someElement”不是div或span。有时候它是一个输入字段。所以我想这样做。

    var st = "some text";
    $('#someElement').html(st).val(st);
    
  3. 这似乎适用于我的初步测试,但我很好奇是否有更快的方法来实现这一目标。我不想这样做:

     $.fn.findEleType = function findEleType(){
         // do the figuring
      }
    
     $('#someElement').findEleType('some text');
    

1 个答案:

答案 0 :(得分:2)

我认为你需要这样的东西。希望它有所帮助

$.fn.findEleType = function findEleType(text){
    domEl = this;

    if(domEl.is("div,span,p")){ //etc
      $(domEl).html(text);
    }

    if(domEl.is("input:text") || domEl.is("input:password") || domEl.is("input:file") ||   domEl.is("textarea")) {
       $(domEl).val(text);
       // you can play with selectors like: "input:text:enabled"
    }

    if(domEl.is("input:radio")){
       // .is(:checked)
    }

    if(domEl.is("input:checkbox")){
       // .is(:checked)
    }

    if(domEl.is("select")){
       // index = $("option:selected",domEl).index()
    }

};

http://jsfiddle.net/2S34r/8/