我想在用户点击hdnServiceCode
按钮时捕获存储在隐藏字段btnShipNow
中的值。所以在这里我粘贴一个示例html。我希望当用户点击btnShipNow
按钮,然后我想从hdnServiceCode
隐藏字段中提取最接近btnShipNow
按钮的值。
<div id="rec">
<ul>
<li>
<input type="hidden" value="65" id="hdnServiceCode">
UPS Express Saver</li>
</ul>
<ul>
<li>24.47 GBP</li>
<li class="nobutton"><span id="rptPrice_ctl01_btnShipNow">Ship Now</span>
</li>
</ul>
</div>
<div id="rec">
<ul>
<li>
<input type="hidden" value="15" id="hdnServiceCode">
UPS Express Saver</li>
</ul>
<ul>
<li>11.47 GBP</li>
<li class="nobutton"><span id="rptPrice_ctl01_btnShipNow">Ship Now</span>
</li>
</ul>
</div>
$('.nobutton').live("click", function () {
alert($(this).closest('ul').closest('div#rec').closest("hdnServiceCode").val());
});
但上面的代码不起作用。在哪里我犯了错误。请帮我从隐藏字段中捕获最接近btnShipNow
按钮的值。感谢
答案 0 :(得分:1)
尝试,
alert($(this).closest('#rec').find("#hdnServiceCode").val());
你的选择器中可能有很多错误,比如
但主要是你应该真正使用DOM中的元素的唯一ID。对于当前具有标识hdnServiceCode
且使用
alert($(this).closest('#rec').find(".hdnServiceCode").val());
答案 1 :(得分:0)
这是一个小提琴:http://jsfiddle.net/boatrokr/jB5a5/
我清理了匹配ID的问题并使用了这个:
$('.nobutton').click(function(){
alert($(this).prev().text());
});
答案 2 :(得分:0)
因为id应该是唯一的。所以修改你的codee并在你的字段中添加 hdn 类
<div id="rec">
<ul>
<li>
<input type="hidden" value="65" id="hdnServiceCode1" class="hdn"/>
UPS Express Saver</li>
</ul>
<ul>
<li>24.47 GBP</li>
<li class="nobutton"><span id="rptPrice_ctl01_btnShipNow">Ship Now</span>
</li>
</ul>
</div>
<div id="rec">
<ul>
<li>
<input type="hidden" value="15" id="hdnServiceCode2" class="hdn"/>
UPS Express Saver</li>
</ul>
<ul>
<li>11.47 GBP</li>
<li class="nobutton"><span id="rptPrice_ctl01_btnShipNow">Ship Now</span>
</li>
</ul>
你的jquery
$('.nobutton').on('click', function () {
alert($(this).closest('#rec').find(".hdn").val());
alert($(this).closest('#rec').find("ul:eq(0) li").text());
});