使用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>
答案 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>