JQuery выберите Id вопрос - PullRequest
       11

JQuery выберите Id вопрос

0 голосов
/ 05 июня 2009

У меня есть вопрос по поводу выбора идентификатора.

По сути, я вызываю функцию javascript из функции onClick, которую передаю в 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 ]

6 голосов
/ 05 июня 2009
var control = jQuery("'#" + controlId + "'");        
var label = jQuery("'#" + labelId + "'");

вы делаете свои селекторы неправильно. избавьтесь от одинарных кавычек и просто используйте двойные кавычки:

var control = $("#" + controlId);        
var label = $("#" + labelId);
2 голосов
/ 05 июня 2009

Попробуйте

jQuery('#' + controlId);

В противном случае вы ищете '#controlId', который не является допустимым селектором.

1 голос
/ 05 июня 2009

Может быть, это:

var control = jQuery("#" + controlId);
var label = jQuery("#" + labelId);
1 голос
/ 05 июня 2009

Вы получаете объект jQuery, а не элемент DOM. Вы должны использовать:

control.val()

например, чтобы получить значение ...

О, и я второй ответ Джейсона:

jQuery('#' + controlId);

должно хорошо ...

0 голосов
/ 05 июня 2009

Я бы предложил передавать controlId и labelId как селекторы или элементы, а не как строки. Воспользуйтесь всеми преимуществами того факта, что вы можете передавать объекты в качестве аргументов.

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

ToggleProgressEnable(5, control, label);
0 голосов
/ 05 июня 2009
    var control = jQuery("#" + controlId);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...