jQuery html元素属性名称
我被要求帮助添加一个onChange到select,因此我提出了以下建议:jQuery html元素属性名称,jquery,dom,Jquery,Dom,我被要求帮助添加一个onChange到select,因此我提出了以下建议: $("select[name=component]").change(function() { $("input[name=Code]").val(JSONObject[$(this).selectedIndex].code; $("input[name=Category]").val(JSONObject[$(this).selectedIndex].category; $("input[name=
$("select[name=component]").change(function() {
$("input[name=Code]").val(JSONObject[$(this).selectedIndex].code;
$("input[name=Category]").val(JSONObject[$(this).selectedIndex].category;
$("input[name=UOM]").val(JSONObject[$(this).selectedIndex].uom;
});
询问者告诉我,直到他把$this换成$this,它才起作用
只有在jQuery不使用我假定为jQuery对象的名称selectedIndex的情况下,这才有意义
如果不是,我是否只需要使用.attrselectedIndex
jQuery正在将对象从$this jQuery对象动态转换为表单元素还是选择对象?jQuery对象实际上不是DOM元素的扩展:DOM元素成为jQuery元素的子元素 它位于jQuery对象的0成员中,因此,如果出于某种原因需要使用jQuery对象,在本例的上下文中作为@nickf是疯狂的-您只需使用this.selectedIndex,就必须使用
$(this)[0].selectedIndex
访问原始属性。$这实际上会将给定对象包装在JQuery对象中-由于selectedIndex不是html元素的属性,因此您将无法访问该属性。因此,访问该属性的正确方法实际上是不将其包装在jquery对象中-因此,this.selectedIndex.在所有事件处理程序中,这是DOM元素本身,而不是jquery对象
这里没有什么神奇之处-$this只是在元素周围创建一个jQuery对象。jQuery没有.selectedIndex属性,但DOM元素有,因此不需要调用$this也许值得指出的是,编写$this[0]是疯狂的。谢谢@nickf-我知道这一点;