У нас есть n-блоков !В каждом есть селекторная выборка!Проблема в том что если я выбираю из списка в 1 блоке , то значения передаються и всем следующим!Как исправить?
$('.iteaminfo select').on('click',function(){
var iteamval = $(this).val();
if(iteamval==1){
var iteaminf = $('#itm_info_1').text();
$('.p_info').text(iteaminf);
var iteamcost = $('#itm_cost_1').text();
$(".cost").text(iteamcost);
}
if(iteamval==2){
var iteaminf = $('#itm_info_2').text();
$('.p_info').text(iteaminf);
var iteamcost = $('#itm_cost_2').text();
$(".cost").text(iteamcost);
}
if(iteamval==3){
var iteaminf = $('#itm_info_3').text();
$('.p_info').text(iteaminf);
var iteamcost = $('#itm_cost_3').text();
$(".cost").text(iteamcost);
}
});
.hide_block{
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="iteaminfo">
<h3>Двигуни</h3>
<select name="motor" id="motor">
<option selected value="1">Двигун Комплектний 2.2CDi 313</option>
<option value="2">Двигун Комплектний 2.9 Tdi 312</option>
<option value="3">Голий двигун </option>
</select>
<div class="hide_block">
<p id="itm_info_1">Двигун Комплектний 2.2CDi 313</p>
<p id="itm_info_2">Двигун Комплектний 2.9 Tdi 312</p>
<p id="itm_info_3">Голий двигун</p>
<p id="itm_cost_1">2000</p>
<p id="itm_cost_2">2000</p>
<p id="itm_cost_3">1300</p>
</div>
<p class="p_info">Виберіть двигун зі списку вище!</p>
</div>
<div class="iteaminfo">
<h3>Двигуни</h3>
<select name="gov" id="motor">
<option selected value="1">Двигун Комплектний 2.2CDi 313</option>
<option value="2">Двигун Комплектний 2.9 Tdi 312</option>
<option value="3">Голий двигун </option>
</select>
<div class="hide_block">
<p id="itm_info_1">Двигун Комплектний 2.2CDi 313</p>
<p id="itm_info_2">Двигун Комплектний 2.9 Tdi 312</p>
<p id="itm_info_3">Голий двигун</p>
<p id="itm_cost_1">2000</p>
<p id="itm_cost_2">2000</p>
<p id="itm_cost_3">1300</p>
</div>
<p class="p_info">Виберіть двигун зі списку вище!</p>
</div>
Если с Вашим кодом + небольшие правки, то :
$('.iteaminfo select').on('click',function(){
var iteamval = $(this).val(),
wrap = $(this).closest('.iteaminfo'),
info = wrap.find('.p_info'),
cost = wrap.find('.cost');
if(iteamval==1){
var iteaminf = wrap.find('.itm_info_1').text();
info.text(iteaminf);
var iteamcost = wrap.find('.itm_cost_1').text();
cost.text(iteamcost);
}
if(iteamval==2){
var iteaminf = wrap.find('.itm_info_2').text();
info.text(iteaminf);
var iteamcost = wrap.find('.itm_cost_2').text();
cost.text(iteamcost);
}
if(iteamval==3){
var iteaminf = wrap.find('.itm_info_3').text();
info.text(iteaminf);
var iteamcost = wrap.find('.itm_cost_3').text();
cost.text(iteamcost);
}
});
.hide_block{
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="iteaminfo">
<h3>Двигуни</h3>
<select name="motor" class="motor">
<option value="1" selected>Двигун Комплектний 2.2CDi 313</option>
<option value="2">Двигун Комплектний 2.9 Tdi 312</option>
<option value="3">Голий двигун </option>
</select>
<div class="hide_block">
<p class="itm_info_1">Двигун Комплектний 2.2CDi 313</p>
<p class="itm_info_2">Двигун Комплектний 2.9 Tdi 312</p>
<p class="itm_info_3">Голий двигун</p>
<p class="itm_cost_1">2000</p>
<p class="itm_cost_2">2000</p>
<p class="itm_cost_3">1300</p>
</div>
<p class="p_info">Виберіть двигун зі списку вище!</p>
<div class="cost">цена</div>
</div>
<div class="iteaminfo">
<h3>Двигуни</h3>
<select name="gov" class="motor">
<option selected value="1">Двигун Комплектний 2.2CDi 313</option>
<option value="2">Двигун Комплектний 2.9 Tdi 312</option>
<option value="3">Голий двигун </option>
</select>
<div class="hide_block">
<p class="itm_info_1">Двигун Комплектний 2.2CDi 313</p>
<p class="itm_info_2">Двигун Комплектний 2.9 Tdi 312</p>
<p class="itm_info_3">Голий двигун</p>
<p class="itm_cost_1">2000</p>
<p class="itm_cost_2">2000</p>
<p class="itm_cost_3">1300</p>
</div>
<p class="p_info">Виберіть двигун зі списку вище!</p>
<div class="cost">цена</div>
</div>
P.S: id - уникальный идентификатор, может быть только в ед. числе на странице.
Или так например:
$('.iteaminfo select').on('click',function(){
var
iteamval = $(this).children(":selected").html(),
wrap = $(this).closest('.iteaminfo'),
price = $(this).children(":selected").data('price'),
info = wrap.find('.p_info'),
cost = wrap.find('.cost');
info.text(iteamval);
cost.html(price);
});
.hide_block{
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="iteaminfo">
<h3>Двигуни</h3>
<select name="motor" id="motor">
<option value="1" selected data-price="2000">Двигун Комплектний 2.2CDi 313</option>
<option value="2" data-price="2000">Двигун Комплектний 2.9 Tdi 312</option>
<option value="3" data-price="1300">Голий двигун </option>
</select>
<p class="p_info">Виберіть двигун зі списку вище!</p>
<p>Ціна: <div class="cost"></div></p>
</div>
<div class="iteaminfo">
<h3>Двигуни</h3>
<select name="gov" id="motor">
<option value="1" selected data-price="2000">Двигун Комплектний 2.2CDi 313</option>
<option value="2" data-price="2000">Двигун Комплектний 2.9 Tdi 312</option>
<option value="3" data-price="1300">Голий двигун </option>
</select>
<p class="p_info">Виберіть двигун зі списку вище!</p>
<p>Ціна: <div class="cost"></div></p>
</div>
Думаю как то так:
$('.iteaminfo select').click(function() {
var self = $(this),
pInfo = $('.p_info', self.parent()),
//pCost = $(".cost"),
val = self.val(),
info = $('#itm_info_' + val),
cost = $('#itm_cost_' + val);
pInfo.text(info);
//pCost.text(cost);
return false;
});
А вообще не понимаю зачем вам столько классов и идов. ненадо так делать, когда у вас есть конкретные теги и их содержимое.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости