2013-04-07 73 views
0

我想让用户可以选择前2轮或4轮,然后根据2/4轮有一个输入类型的文本字段,他们必须写数字的票据,然后根据选定的事件它jquery计算票数和车的价格,并将它们写入一个变量selected_event(每个div的价格有自己的ID与div的名称$('#' + selected_event).html("€ " + totale + ",00"); 我写的jQuery代码不行!也许我可以选择与输入类型无线电处于同一父div的输入字段,然后根据该输入类型文本来更改价格.cange(),但我选择它时出现问题,我尝试使用.child()。 。父()..jquery不选择所选div的子元素

HTML:

<div class="more_car_info"> 
       <div class="small_car_image"> 
        <img src="http://www.domain/slide1.jpg" style="width:101px;height:66px;"> 
      </div> 
      <div class="car_ticket_anzahl_und_prise"> 
       <p style="float:left;"><span style="margin-right:45px;"><input value="2runden" alt="1" name="anzahl_ticket" type="radio" style="width: 20px !important;margin:0;height:25px;"> 2 Runden </span><span style="margin-right:45px;">199,00€</span> Anzahl Ticket: <input type="text" class="anzahl_tickets" name="Nürburgring" style="width:20px !important;margin-bottom: 4px !important;"></p> 
       <p style="float:left;"><span style="margin-right:45px;"><input value="4runden" alt="2" name="anzahl_ticket" type="radio" style="width: 20px !important;margin:0;height:25px;"> 4 Runden </span><span style="margin-right:45px;">359,00€</span> Anzahl Ticket: <input type="text" class="anzahl_tickets" name="Nürburgring" style="width:20px !important;margin-bottom: 4px !important;"></p> 
      </div> 
     </div> 

的jQuery:

if($('input[name=anzahl_ticket]:checked').val() == '2runden') { 
    $('.anzahl_tickets').change(function() { 
      var selected_event = $('.anzahl_tickets').attr("name");  
      var nr1 = $('.anzahl_tickets').val(); 
      var nr2 = +nr1; 
      var car = 199; 
      var totale = (nr2 * car); 
      alert(selected_event); 
      $('#' + selected_event).html("€ " + totale + ",00"); //gesamtpreis 
     }); 
} 
else if($('input[name=anzahl_ticket]:checked').val() == '4runden'){ 
    $('.anzahl_tickets').change(function() { 
     var selected_event = $('.anzahl_tickets').attr("name"); 
     var nr1 = $('.anzahl_tickets').val(); 
     var nr2 = +nr1; 
     var car = 366; 
     var totale = (nr2 * car); 
     $('#' + selected_event).html("€ " + totale + ",00"); //gesamtpreis 
     }); 
} 

回答

2

尝试用$(this)换掉$('.anszhl_tickets)选择你处理内部,像:

var selected_event = $(this).attr("name"); 
    var nr1 = $(this).val(); 

如果您的页面上有多个元素,且类别为.anszhl_tickets,那么您的代码将不会执行您认为的操作,因为$('.anszhl_tickets')将匹配多个元素。

+0

我也有类的乘法元素:单选按钮的anzahl_ticket和用于输入类型文本乘以元素的类:anzahl_tickets – TooCooL 2013-04-07 18:50:07

+0

上面的HTML重复乘以倍数,唯一不同的是inupt的名字键入字段文本:名称=“纽博格林”是为这个事件,因为其他事件是不同的.. – TooCooL 2013-04-07 18:53:17

+0

我做了一个小提琴,你想要的大部分我想... [小提琴在这里](http:// jsfiddle达网络/ D3zN9/3 /) – dinjas 2013-04-07 19:40:45