JQuery übereinstimmen mehrere Attribute
-
03-07-2019 - |
Frage
Ich habe das folgende Markup und möchte das machen All
Optionsknopf überprüft.
<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>
Ich möchte über Attribut übereinstimmen, aber ich muss mit zwei Attributen übereinstimmen, @name='Foo'
und @value='All'
.
Etwas wie das:
$("input[@name='Foo' @value='all']").attr('checked','checked');
Kann jemand zeigen, wie das getan werden kann?
Lösung
Die folgende HTML -Datei zeigt, wie Sie dies tun können:
<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>
Wenn Sie auf den Link klicken, wird das gewünschte Optionsfeld ausgewählt. Die wichtige Zeile ist diejenige, die die festlegt checked
Attribut.
Andere Tipps
Ich habe meinen Kopf gegen eine ähnliche Wand geschlagen und möchte nur darauf hinweisen, dass in JQuery 1.3 die in der akzeptierte Antwort verwendete Syntax die einzige Syntax ist, die funktioniert. Der Fragesteller verwendet die @ syntax für den Ausdruck, der in jQuery überhaupt nicht funktioniert. Hoffentlich hilft dies dem nächsten Mann, diese Frage über Google = P zu stoßen
Um klar zu sein, müssen Sie verwenden
jQuery('input[name=field1][val=checked]')
und nicht
jQuery('input[@name=field1][@val=checked]')