代码之家  ›  专栏  ›  技术社区  ›  J.W.

JQuery选择Id问题

  •  0
  • J.W.  · 技术社区  · 17 年前

    我有一个关于选择Id的jquery问题。

    基本上,我从一个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>
    
    6 回复  |  直到 17 年前
        1
  •  6
  •   Jason    17 年前
    var control = jQuery("'#" + controlId + "'");        
    var label = jQuery("'#" + labelId + "'");
    

    你的选择器做错了。去掉单引号,只使用双引号:

    var control = $("#" + controlId);        
    var label = $("#" + labelId);
    
        2
  •  2
  •   Adrian Godong    17 年前

    尝试

    jQuery('#' + controlId);
    

    否则,您将搜索不是有效选择器的“#controlId”。

        3
  •  1
  •   sasa    17 年前

    也许是这样:

    var control = jQuery("#" + controlId);
    var label = jQuery("#" + labelId);
    
        4
  •  1
  •   Ropstah    17 年前

    您接收的是jQuery对象,而不是DOM元素。你应使用:

    control.val()
    

    例如,要获取值。。。

    哦,我同意杰森的回答:

    jQuery('#' + controlId);
    

    应该做得很好。。。

        5
  •  0
  •   Flavius Stef    17 年前
        var control = jQuery("#" + controlId);
    
        6
  •  0
  •   Soviut    17 年前

    var control = $('#myControl');
    var label = $('#myLabel');
    
    ToggleProgressEnable(5, control, label);