jQuery html元素属性名称

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=

我被要求帮助添加一个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=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-我知道这一点;