У меня есть две таблицы. Я хочу отразить значения из одной таблицы в другую. Текущая реализация у меня такова:эффективное отражение значений с .on()
<script type="text/javascript">
$("#textfield1, #textfield2, #textfield3, #select1").on("keyup keypress blur click change", function(event){
$("input[type='text']#copytextfield1").val($("[type='text']#textfield1").val());
$("input[type='text']#copytextfield2").val($("[type='text']#textfield2").val());
$("input[type='text']#copytextfield3").val($("[type='text']#textfield3").val());
$("input[type='text']#copytextfield4").val($("select#select1").val());
});
</script>
как вы можете видеть, имена очень похожи. Единственное отличие состоит в том, что элементы зеркалирования имеют «копию». можете ли вы предложить способы сделать это более эффективным? возможно, воспользоваться конкретизацией имен?
'# copytextfield4' отображение в' # select1' делает его труднее реорганизовать это в петлю. Существуют ли другие особые случаи? Кроме того, вам не нужны 'input [type = 'text']' или 'select' перед выборами id, это фактически делает ваш код менее удобочитаемым * и * менее эффективным. –
Я добавил только вход [type = 'text'] и выбираю, потому что я смутно помню, что добавление их на самом деле делает его более эффективным. Нет, я не уверен, что я читаю. можете ли вы направить меня на некоторые ссылки, говорящие наоборот? – user571099
Конечно, [документация для выбора идентификатора] (http://api.jquery.com/id-selector/), первый абзац в разделе «Описание». Вполне логично: '# foo' только должен соответствовать' id', 'something # foo' также должен проверять элемент против селектора' something'. –