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

标签 jquery

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

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

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

    var st = "some text";
    $('#someElement').html(st).val(st);
    

这在我的初步测试中似乎有效,但我很好奇是否有更好的方法来实现这一点。我不想这样做:

 $.fn.findEleType = function findEleType(){
     // do the figuring
  }

 $('#someElement').findEleType('some text');

最佳答案

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

$.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/

关于jQuery 和 .html().val() 的链接方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21716534/

相关文章:

javascript - jquery 和 javascript 冲突

jquery - PhoneGap jquerymobile session

jquery - applyBindings() 太快,在 Ajax 请求完成之前调用

jquery - Microsoft JScript 运行时错误 : Object doesn't support property or method 'slice' IE8 MVC

javascript - 使用 jQuery AJAX 下载二进制文件

javascript - 如何使用日期时间选择器添加警报

使用 Django 进行 Jquery 自动完成

javascript - 无法让 vimeo 视频与 fancybox 一起使用 - 我觉得我已经尝试了一切

javascript - 使用 jQuery 使用 optgroup 填充选择

jquery - 自动调整动态文本大小以填充固定大小的容器