#jquery
#jquery
Вопрос:
У меня есть список переключателей, подобных этому:
<div id="TheOptions">
<input type="radio" id="test1" name="mylist"/>option 1
<input type="radio" id="test2" name="mylist"/>option 2
<input type="radio" id="test3" name="mylist"/>option 3
<input type="radio" id="test4" name="mylist"/>option 4
</div>
Когда я пишу
$('#test1').html('best option');
Текст добавлен к переключателю, и текущий текст «вариант 1» по-прежнему отображается.
Как я могу изменить это, чтобы заставить его работать?
Спасибо.
Ответ №1:
Вы должны обернуть свой текст в <label>
элементы:
<div id="TheOptions">
<input type="radio" id="test1" name="mylist"/><label for="test1">option 1</label>
<input type="radio" id="test2" name="mylist"/><label for="test1">option 2</label>
<input type="radio" id="test3" name="mylist"/><label for="test1">option 3</label>
<input type="radio" id="test4" name="mylist"/><label for="test1">option 4</label>
</div>
Теперь ваш текст явно связан с соответствующим переключателем, и пользователи даже смогут щелкнуть по тексту, пользователи с ослабленным зрением также будут весьма благодарны за улучшенное удобство использования. Тогда вы можете просто сделать:
$('label[for=test1]').html('best option');
Комментарии:
1. круто, это оригинально. Как работает инструкция [for =test1]?
2. @frenchie: Это всего лишь стандартный селектор атрибутов .
3. Как бы вы это сделали, если у вас есть
<label for="test1"><input type="radio" id="test1" name="mylist"/>option 1</label>
4. @blueDroid В верхней части моей головы я бы вставил
<span>
туда, чтобы текст было легче выделить:<label for="test1"><input type="radio" id="test1" name="mylist"/><span>option 1</span></label>
. Возможно, это лучший способ, но это самое простое, что я могу придумать для jQuery.