以下代码:
$product_id = $(this).parent().parent().html();
产生这个:
<div class="right">
<input value="6" name="quantity" id="" maxlength="2" type="text">
<label> Places required</label>
<p class="btn update">Update</p>
<input name="product_id" value="2" class="product_id" type="hidden">
<p class="btn remove">Remove from basket</p>
</div>
<a href="/product//"><img src="http://dummyimage.com/100x100/333/eee" alt="" class="border-thick shadow"></a>
<div class="left">
<h5>Title</h5>
<select name="courses_details_id">
<option value="">Select date/venue...</option>
<option value="6">10 Oct 2011 - Chicago, USA</option>
<option value="4">13 Oct 2011 - Hastings</option>
<option value="2">18 Nov 2011 - Paris, France</option>
</select>
<br>
<p class="price"><span class="small">From</span> £77.88</p>
</div>
我只想获得product_id的值,所以这是有道理的:
$('#basket li form select[name=courses_details_id]').change( function(){
$(this).parent().parent().children("input[name$=product_id]").val();
});
但它返回值undefined
答案 0 :(得分:1)
你不能这样做吗
$(this).find("input[name='product_id']").val();
答案 1 :(得分:0)
您的选择器中缺少引号,它应该是这样的
$('input[name$="product_id"]')
答案 2 :(得分:0)
简化您的标记。让你选择元素看起来像这样
<select name="course_details_id" id="course_details"/>
然后将价值简单化为:
$("#course_details").change(function() {
var product = $(this).val();
});