jQuery соответствует нескольким атрибутам
-
03-07-2019 - |
Вопрос
У меня есть следующая разметка, и я хочу сделать All
переключатель проверен.
<ul>
<li><input type="radio" value="All" name="Foo"/>All</li>
<li><input type="radio" value="New" name="Foo"/>New</li>
<li><input type="radio" value="Removed" name="Foo"/>Removed</li>
<li><input type="radio" value="Updated" name="Foo"/>Updated</li>
</ul>
Я бы хотел сопоставить по атрибуту, но мне нужно сопоставить по 2 атрибутам, @name='Foo'
и @value='All'
.
Что - то вроде этого:
$("input[@name='Foo' @value='all']").attr('checked','checked');
Может кто-нибудь показать, как это можно сделать?
Решение
Следующий HTML-файл показывает, как вы можете это сделать:
<html>
<head>
<script type="text/javascript" src="jquery-1.2.6.pack.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("a").click(function(event){
$("input[name='Foo'][value='All']").attr('checked','checked');
event.preventDefault();
});
});
</script>
</head>
<body>
<ul>
<li><input type="radio" value="All" name="Foo" />All</li>
<li><input type="radio" value="New" name="Foo" />New</li>
<li><input type="radio" value="Removed" name="Foo" />Removed</li>
<li><input type="radio" value="Updated" name="Foo" />Updated</li>
</ul>
<a href="" >Click here</a>
</body>
</html>
Когда вы нажимаете на ссылку, выбирается нужный переключатель.Важной строкой является та, которая устанавливает checked
атрибут.
Другие советы
Я бился головой о стену, похожую на эту, и просто хочу отметить, что в jQuery 1.3 синтаксис, используемый в принятом ответе, является ЕДИНСТВЕННЫМ синтаксисом, который будет работать.Спрашивающий использует синтаксис @ для выражения, которое вообще не работает в jQuery.Надеюсь, это поможет следующему парню наткнуться на этот вопрос через Google = p
Чтобы было ясно, вы должны использовать
jQuery('input[name=field1][val=checked]')
и не
jQuery('input[@name=field1][@val=checked]')