这是我的代码 -
var obj = $('[id$=ddlInsert4]')
obj.disable = true;
obj 是一个下拉列表,但 disable 调用不会禁用下拉列表。
alert(obj.val()) //this returns the correct value
由于我的警报返回正确的值,我知道我的 jQuery 语法是正确的。我错过了什么?
这是我的代码 -
var obj = $('[id$=ddlInsert4]')
obj.disable = true;
obj 是一个下拉列表,但 disable 调用不会禁用下拉列表。
alert(obj.val()) //this returns the correct value
由于我的警报返回正确的值,我知道我的 jQuery 语法是正确的。我错过了什么?
尝试使用.prop
如下,
$('[id$=ddlInsert4]').prop('disabled', true);
您可以使用.prop
上面的 jQuery 函数
或者
$('[id$=ddlInsert4]')
返回一个 jquery 对象(选择器总是返回 jQuery 对象的数组)所以你不能像这样在 jQuery 对象上设置 DOM 属性..
您需要循环迭代并设置属性 ex: $('[id$=ddlInsert4]')[i].disabled = true
where i
is the index.
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
方法,因为它会为您循环遍历所有元素。