переключатель 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 ответов:
ваш селектор ищет потомка a
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" />
если ваш переключатель имел идентификатор:
<input type="radio" name="cols" value="1" id="myradio" />
вы можете напрямую использовать селектор идентификаторов:
$('#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();