Мне нужно изменить некоторые входы флажков на скрытые входы для некоторых, но не всех входов на странице.
<input type="checkbox" name="ProductCode"value="396P4">
<input type="checkbox" name="ProductCode"value="401P4">
<input type="checkbox" name="ProductCode"value="F460129">
Приведенный ниже код jquery выбирает ввод только по типу, что приводит к изменению всех флажков на скрытые вводы. Есть ли способ проверить оба типа input = "checkbox" и name = "ProductCode" в качестве селектора, чтобы я мог специально нацелить их что я хочу изменить?
$("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
});
Вы можете комбинировать селекторы атрибутов следующим образом:
так что элемент должен удовлетворять обоим условиям. Конечно, вы можете использовать это более чем для двух. Кроме того, не делай
[type=checkbox]
. jQuery имеет для этого селектор, а именно:checkbox
поэтому конечный результат:Однако селекторы атрибутов работают медленно, поэтому рекомендуется использовать селекторы идентификаторов и классов, где это возможно. Вы можете изменить свою разметку на:
что позволяет использовать гораздо более быстрый селектор:
источник
Это способ CSS, и я почти уверен, что он будет работать в jQuery.
источник