2008-12-06 1 views
13

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

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

Благодаря

Вот 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> 
+0

Можете ли вы уточнить, что вы пытаетесь сделать? Я думаю, вы пытаетесь снять флажок со значения «A», но это не так, как это делается. Проверьте http://docs.jquery.com/Attributes/attr#keyvalue – knuton 2008-12-06 18:09:29

+0

Извините, я вижу, как было неясно. Я думаю, что мой ответ очищает мое намерение. Вы говорили, что я снял флажок с неправильного ввода? Мне было бы интересно ваше решение. Ссылка не дала мне другого решения. – 2008-12-06 20:06:40

ответ

29

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

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

установит проверяются на ложные для ввода с именем keywordCheckbox и значением А.

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

Установим проверил ложно для входы с именем keywordCheckbox, значения которых не являются A.

EDIT

Я только что протестировал следующее в 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); 
      } 
     } 
    }); 
}); 
6

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

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

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

Смежные вопросы