Ich muss einige Checkbox-Eingaben für einige, aber nicht alle Eingaben auf einer Seite in versteckte Eingaben ändern.
<input type="checkbox" name="ProductCode"value="396P4">
<input type="checkbox" name="ProductCode"value="401P4">
<input type="checkbox" name="ProductCode"value="F460129">
Der folgende Abfragecode wählt nur die Eingabe nach Typ aus, wodurch alle Kontrollkästchen in versteckte Eingaben geändert werden. Gibt es eine Möglichkeit, sowohl den Typ der Eingabe = "Kontrollkästchen" als auch den Namen = "ProductCode" als Selektor zu überprüfen, damit ich diese gezielt auswählen kann dass ich mich ändern will?
$("input[type='checkbox']").each(function(){
var name = $(this).attr('name'); // grab name of original
var value = $(this).attr('value'); // grab value of original
var html = '<input type="hidden" name="'+name+'" value="'+value+'" />';
$(this).after(html).remove(); // add new, then remove original input
});
Sie können Attributselektoren folgendermaßen kombinieren:
so dass ein Element beide Bedingungen erfüllen muss. Natürlich können Sie dies für mehr als zwei verwenden. Tu es auch nicht
[type=checkbox]
. jQuery hat dafür einen Selektor, nämlich:checkbox
das Endergebnis ist:Attributselektoren sind jedoch langsam, daher wird empfohlen, nach Möglichkeit ID- und Klassenselektoren zu verwenden. Sie können Ihr Markup ändern in:
So können Sie die viel schnellere Auswahl von:
quelle
Das ist der CSS-Weg und ich bin fast sicher, dass es in jQuery funktionieren wird.
quelle