Jquery如何获取id的html值(最近的id / id在同一行)

时间:2014-11-01 18:19:32

标签: jquery

使用php foreach获取html如下。所以id就像price1,price2,price3等。

用户可以更改数量。在这种情况下,我必须将价格与变化的数量相乘。我决定用jquery做这件事。

首次访问quantity

$( '[id^="quantity"]' ).change(function(){
var quantity = $(this).val();
});

但无法获得价格的html价值。试图

var price = $(this).find( '[id^="price"]' ).attr('id');
var price = $(this).find( 'div[id^="price"]' ).html();

在两种情况下都得到undefined

这是html代码的一部分

<div class="shop_cart_box_around">

   <div class="shop_cart_price">
     <div class="span_cart_name_txt" id="price1">789</div>
   </div>

   <div class="shop_cart_quantity">
     <input type="text" name="quantity[]" id="quantity1" value="3"/>
   </div>

</div>

<div class="shop_cart_box_around">

   <div class="shop_cart_price">
     <div class="span_cart_name_txt" id="price2">54</div>
   </div>

   <div class="shop_cart_quantity">
     <input type="text" name="quantity[]" id="quantity2" value="1"/>
   </div>

</div>

1 个答案:

答案 0 :(得分:1)

您必须使用closest()获取包含 shop_cart_box_around 类的父元素,然后使用find()获取其子元素:

$(this).closest(".shop_cart_box_around").find( '[id^="price"]' ).attr('id');

获取价格(表示价格div值)使用text()

$(this).closest(".shop_cart_box_around").find( '[id^="price"]' ).text();

$(function(){

  $( '[id^="quantity"]' ).change(function(){
var quantity = $(this).val();
  alert("Id : "+ $(this).closest(".shop_cart_box_around").find( '[id^="price"]' ).attr('id'));
 alert("Value : " +$(this).closest(".shop_cart_box_around").find( '[id^="price"]' ).text());
});

})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div class="shop_cart_box_around">

   <div class="shop_cart_price">
     <div class="span_cart_name_txt" id="price1">789</div>
   </div>

   <div class="shop_cart_quantity">
     <input type="text" name="quantity[]" id="quantity1" value="3"/>
   </div>

</div>

<div class="shop_cart_box_around">

   <div class="shop_cart_price">
     <div class="span_cart_name_txt" id="price2">54</div>
   </div>

   <div class="shop_cart_quantity">
     <input type="text" name="quantity[]" id="quantity2" value="1"/>
   </div>

</div>