Работа с Jquery элементами и номерами
$('select.farbe-1').change(function() {
var chosen = $(this).find(":selected").text().toLowerCase();
$('img.color-1').attr('src', 'http://www.schiendorfer.info/wordpress/wp-content/plugins/bestellungen/img/color/' + chosen + '.jpg');
});
$('select.farbe-2').change(function() {
var chosen = $(this).find(":selected").text().toLowerCase();
$('img.color-2').attr('src', 'http://www.schiendorfer.info/wordpress/wp-content/plugins/bestellungen/img/color/' + chosen + '.jpg');
});
$('select.farbe-3').change(function() {
var chosen = $(this).find(":selected").text().toLowerCase();
$('img.color-3').attr('src', 'http://www.schiendorfer.info/wordpress/wp-content/plugins/bestellungen/img/color/' + chosen + '.jpg');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="product-choice choice-1">
<img class="color-1" src="http://www.schiendorfer.info/wordpress/wp-content/plugins/bestellungen/img/color/blue.jpg">
<select class="farbe-1" name="farbe_1">
<option value="3">Black</option>
<option value="1">Blue</option>
<option value="2">Green</option>
<option value="4">Orange</option>
<option value="0" selected="">Red</option>
</select>
</div>
<div class="product-choice choice-2">
<img class="color-2" src="http://www.schiendorfer.info/wordpress/wp-content/plugins/bestellungen/img/color/blue.jpg">
<select class="farbe-2" name="farbe_2">
<option value="3">Black</option>
<option value="1">Blue</option>
<option value="2">Green</option>
<option value="4">Orange</option>
<option value="0" selected="">Red</option>
</select>
</div>
<div class="product-choice choice-3">
<img class="color-3" src="http://www.schiendorfer.info/wordpress/wp-content/plugins/bestellungen/img/color/blue.jpg">
<select class="farbe-3" name="farbe_3">
<option value="3">Black</option>
<option value="1">Blue</option>
<option value="2">Green</option>
<option value="4">Orange</option>
<option value="0" selected="">Red</option>
</select>
</div>
У меня есть код, указанный выше, и она отлично работает. Но я должен повторить это 10 раз. Вы можете легко видеть, что единственная разница - select.farbe-**x**
и img.color-**x**
Как я могу уменьшить код и написать «профессионально»?
Edit: я добавил сниппета;)
Использование DOM обхода, чтобы связать элемент, вызвавший событие к одному которые вы хотите изменить. Если вы можете отредактировать свой вопрос, чтобы включить образец HTML, я могу привести вам фактический пример этого. –
Структура HTML была бы жизненно важна для ответа на ваш вопрос. – j08691