这是我的代码 -
var obj = $('[id$=ddlInsert4]')
obj.disable = true;
obj是一个下拉列表,但禁用调用不会禁用下拉列表。
alert(obj.val()) //this returns the correct value
由于我的警报返回正确的值,我知道我的jQuery语法是正确的。 我错过了什么?
答案 0 :(得分:5)
尝试使用下面的.prop
,
$('[id$=ddlInsert4]').prop('disabled', true);
您可以使用上面的jQuery .prop
函数
或
$('[id$=ddlInsert4]')
返回一个jquery对象(选择器总是返回jQuery对象的数组)所以你不能像那样在jQuery对象上设置DOM属性..
您需要循环迭代并设置ex:$('[id$=ddlInsert4]')[i].disabled = true
属性,其中i
是索引。
答案 1 :(得分:2)
obj
是一个jQuery对象,而不是DOM元素。你需要做$(obj).prop('disabled', true);
。或者更好的是,如果您在其他地方不需要obj
变量,只需执行:
$('[id$=ddlInsert4]').prop('disabled', true)
要与原生DOM元素进行交互,您可以执行[0]
(或.get(0)
)。然后你可以这样做:
obj[0].disabled = true;
(请注意,该属性为disabled
而不是disable
)
注意:$('[id$=ddlInsert4]')
可以返回多个元素,而[0]
只会返回第一个元素。如果有多个,你需要遍历所有这些。我建议使用jQuery .prop
方法,因为它将循环遍历所有元素。