Javascript + JQuery проверить, если элемент существует, затем установить его значение, иначе что-то еще - PullRequest
0 голосов
/ 18 января 2012

Я пытаюсь проверить, существует ли текстовое поле с другим элементом, и я хочу установить его значение, если оно есть; в противном случае я хочу добавить радио. У меня есть следующий код, но он не работает.

$("ul").each(function(){
if ( !($(this).find('input[value="9999"]').val()) ) {
    var textfield = $(this).find('input[type="text"]');
    if ( textfield.length ) textfield.value="9999";
    // ^ this doesn't work. have also tried if ($(textfield).val())
    else $(this).append('<input name="'+name+'" type="radio" value="9999" checked="checked" />');
    // ^ this works
} // if
});

Кстати, name динамически устанавливается ранее в скрипте.

Ответ

$("ul").each(function(){
if ( !($(this).find('input[value="9999"]').val()) ) {
    var txtfield = $(this).find('input[type="text"]');
    if ( txtfield.length ) $(txtfield).val("9999");
    // just changed this ^ line (above)
    else $(this).append('<input name="'+name+'" type="radio" value="9999" checked="checked" />');
} // if
});

Ответы [ 2 ]

1 голос
/ 18 января 2012

текстовое поле уже является объектом jquery, поэтому вам нужно будет установить значение с помощью textfield.val ("9999")

0 голосов
/ 18 января 2012

.find () также вернет список элементов, поэтому, если их несколько, это может не сработать.Вам может потребоваться сделать еще один .each () для переменной textfield.

...