我需要修改一些代码,而不是将一堆代码包装在 if/else 语句中或创建自定义插件来确定元素类型是否可以执行以下操作而不产生任何后果?
我当前的代码是这样的,这很好 - 它填充了一个 div。
$('#someElement').html('some text')
但是,在某些情况下,“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()
}
};
关于jQuery 和 .html().val() 的链接方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21716534/