我有一个关于选择Id的问题。
基本上,我从onClick函数调用javascript函数,我在控件ID和LabelId中传递。
如果我使用document.getElementById,它会起作用,但是,如果我使用jQuery选择器,它就不起作用。
<script type="text/javascript">
jQuery.noConflict();
function ToggleProgressEnable(valueofRadio, controlId, labelId) {
//Comments: the following will work.
// var control = document.getElementById(controlId);
// var label = document.getElementById(labelId);
//The following is not working.
var control = jQuery("'#" + controlId + "'");
var label = jQuery("'#" + labelId + "'");
if (control != null && label!=null) {
//alert(control.Id);
//alert(control.disabled);
if (valueofRadio == "yes") {
control.disabled = false;
label.disabled = false;
}
else if (valueofRadio == "no") {
control.disabled = true;
control.value = "";
label.disabled = true;
}
//alert(control.disabled);
}
}
</script>
答案 0 :(得分:6)
var control = jQuery("'#" + controlId + "'");
var label = jQuery("'#" + labelId + "'");
你做错了选择者。摆脱你的单引号,只使用你的双引号:
var control = $("#" + controlId);
var label = $("#" + labelId);
答案 1 :(得分:2)
尝试
jQuery('#' + controlId);
否则,您正在搜索'#controlId',它不是有效的选择器。
答案 2 :(得分:1)
您正在接收jQuery对象,而不是DOM元素。你应该使用:
control.val()
例如获取值...
哦,我的第二个Jasons回答:
jQuery('#' + controlId);
应该做得很好......
答案 3 :(得分:1)
也许这个:
var control = jQuery("#" + controlId);
var label = jQuery("#" + labelId);
答案 4 :(得分:0)
var control = jQuery("#" + controlId);
答案 5 :(得分:0)
我建议将controlId和labelId作为选择器或元素而不是字符串传递。充分利用您可以将对象作为参数传递的事实。
var control = $('#myControl');
var label = $('#myLabel');
ToggleProgressEnable(5, control, label);