переключатель 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);
(видел на этот блог)
выбранный ответ работает в этом случае.
но вопрос был о поиске элемента на основе radiogroup и dynamic id, и ответ также может оставить отображаемый переключатель незатронутым.
эта строка выбирает именно то, что было запрошено, показывая изменение на экране.
$('input:radio[name=cols][id='+ newcol +']').click();