Используя jQuery, как найти элемент, когда известны имя и значение

Спасибо, что прочитали это

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

Спасибо

Вот HTML

<input name = "keywordCheckbox" type = "checkbox" value = "S" />
<input name = "keywordCheckbox" type = "checkbox" value = "C" />
<input name = "keywordCheckbox" type = "checkbox" value = "A" />

и js

<script language = "Javascript" src = "javascript/jquery-1.2.6.min.js"></script>
<script type = "text/JavaScript">

 $(function(){
  $('[name = "keywordCheckbox"]').bind("click",
   function() {
    if ($(this).attr("checked") == true) {
     switch(this.value) {
      case "A":
       var $_this = $(this) ;
       $('[name = "keywordCheckbox"]').each(function() {
        if ($(this).val() != $($_this).val()) { $(this).attr("checked",false); }
       });
       break ;
      default:
 DOESN'T WORK --> $('[name = "keywordCheckbox"]').find('[value = "A"]').attr("checked", false);}
      } // END Switch
    } // END If
  }); // End BIND
 }); // End eventlistener
 </script>

Можете ли вы подробнее рассказать о том, что вы пытаетесь сделать? Я думаю, вы пытаетесь снять флажок со значения «А», но это не так. Проверить docs.jquery.com/Attributes/attr#keyvalue

knuton 06.12.2008 21:09

извините, я вижу, как это было непонятно. Думаю, мой ответ проясняет мои намерения. Вы сказали, что я снимаю флажок с ввода неверно? Мне было бы интересно ваше решение .. ссылка не дала мне другого решения

Jay Corbett 06.12.2008 23:06

да. Код, который вы использовали в строке, которую вы пометили как «НЕ РАБОТАЕТ» в приведенном выше источнике, не может работать, поскольку, насколько мне известно, нет атрибута или метода ложный в любом объекте, который возвращает attr (name). Я хотел предложить то, как вы это делаете в опубликованном ниже решении с помощью attr (key, value).

knuton 06.12.2008 23:42

извините, я не уловил этого. Спасибо. Я отредактировал свой вопрос

Jay Corbett 07.12.2008 00:37
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
14
4
32 041
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Или вы могли бы сделать:

$("input[name='keywordCheckbox']").filter("input[value='A']")

Тогда нет необходимости в каждой функции.

Ответ принят как подходящий

Вы должны иметь возможность связать селекторы атрибутов:

 $('input[name = "keywordCheckbox"][value = "A"]').attr("checked",false);

Будет установлено значение false для ввода с именем keywordCheckbox и значением A.

 $('input[name = "keywordCheckbox"][value! = "A"]').attr("checked",false);

будет установлено значение false для входов с именем keywordCheckbox, значения которых не равны A.

РЕДАКТИРОВАТЬ

Я только что протестировал следующее в Firefox / Macintosh с последней версией jQuery. Работает отлично. Какую версию jQuery вы используете?

$(document).ready( function() {
    $('input[name=keywordCheckbox]').bind( 'click', function() {
       if (this.checked) {
          if (this.value == 'A') {              
             $('input[name = "keywordCheckbox"][value! = "A"]')
                .attr("checked",false);
          }
          else {
             $('input[name = "keywordCheckbox"][value = "A"]')
                .attr("checked",false);
          }
       }
    });
});

приношу свои извинения, я протестировал ваш код, и он работал нормально. изначально у вас был ^ вместо! для отрицательного теста, но я думал, что проверил его в обоих направлениях ... может быть, я поставил пробел между [имя] и [значение] ... в любом случае мне нравится ваше решение ... проголосовал за и выбрал этот ответ

Jay Corbett 07.12.2008 00:45

Да уж. Я заметил эту опечатку и исправил ее позже. Спасибо.

tvanfosson 07.12.2008 03:24

Другие вопросы по теме