переключатель jQuery set

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

это то, что я пробовал.

$('input:radio[name=cols]'+" #"+newcol).attr('checked',true);

newcol является идентификатором переключателя.

возможно, небольшое редактирование в порядке.

есть два набора радиоприемников один с cols, а другой со строками. Поэтому я вижу смысл не использовать id. Моя вина. Поэтому у меня в качестве примера:

<input type="radio" name="rows" class="listOfCols" 
   style="width: 50%; " value="Site"></input>

и

<input type="radio" name="cols" class="listOfCols" 
   style="width: 50%; "  value="Site"></input>

с идентификатором удален, и я нужно установить правильный.

11 ответов


ваш селектор ищет потомка input:radio[name=cols] элемент, который имеет идентификатор newcol (ну значение этой переменной).

попробуйте вместо этого (так как вы все равно выбираете по ID):

$('#' + newcol).prop('checked',true);

вот демо:http://jsfiddle.net/jasper/n8CdM/1/

также, как в jQuery 1.6 метод perferred изменить свойство .prop(): http://api.jquery.com/prop


Я нашел ответ here:
https://web.archive.org/web/20160421163524/http://vijayt.com/Post/Set-RadioButton-value-using-jQuery

в принципе, если вы хотите проверить один переключатель, вы должны передать значение в виде массива:

$('input:radio[name=cols]').val(['Site']);
$('input:radio[name=rows]').val(['Site']);

в селекторе вы, кажется, пытаетесь получить какой-то вложенный элемент вашей радиокнопки с заданным идентификатором. Если вы хотите проверить переключатель, вы должны выбрать этот переключатель в селекторе, а не что-то еще:

$('input:radio[name="cols"]').attr('checked', 'checked');

это предполагает, что у вас есть следующий переключатель в разметке:

<input type="radio" name="cols" value="1" />

если ваш переключатель имел id:

<input type="radio" name="cols" value="1" id="myradio" />

вы можете напрямую использовать селектор id:

$('#myradio').attr('checked', 'checked');

вы можете попробовать следующий код:

$("input[name=cols][value=" + value + "]").attr('checked', 'checked');

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


зачем вам нужен 'input:radio[name=cols]'. Не знаю вашего html, но предполагая, что идентификаторы уникальны, вы можете просто сделать это.

$('#'+newcol).prop('checked', true);

попробуйте это:

$("#" + newcol).attr("checked", "checked");

у меня были проблемы с attr("checked", true), поэтому я предпочитаю использовать выше.

кроме того, если у вас есть идентификатор, вам не нужен этот другой материал для выбора. ID является уникальным.


С newcol является идентификатором переключателя, вы можете просто использовать его, как показано ниже.

$("#"+newcol).attr('checked',true);

используя .filter() также работает, и гибко для id, значения, имени:

$('input[name="cols"]').filter("[value='Site']").attr('checked', true);

(видел на этот блог)


вы можете просто использовать:

$("input[name='cols']").click();

выбранный ответ работает в этом случае.

но вопрос был о поиске элемента на основе radiogroup и dynamic id, и ответ также может оставить отображаемый переключатель незатронутым.

эта строка выбирает именно то, что было запрошено, показывая изменение на экране.

$('input:radio[name=cols][id='+ newcol +']').click();

объединение предыдущих ответов:

$('input[name="cols"]').filter("[value='Site']").click();