我有以下HTML:
<div id="divAreaId_1" class="SuppAreaParentDiv">
<input type="hidden" value="3" class="hdnMaxSelection_1" id="hdnMaxSelection_1">
<input type="checkbox" id="SuppItemId_2" class="chkSuppItem"> <br />
<input type="checkbox" id="SuppItemId_3" class="chkSuppItem"> <br />
<input type="checkbox" id="SuppItemId_4" class="chkSuppItem"> <br />
<input type="checkbox" id="SuppItemId_5" class="chkSuppItem"> <br />
我正在努力获取输入:隐藏&#39;检查任何复选框时的值!我需要通过输入:隐藏&#39;部分班级名称:
$(".chkSuppItem").click(function () {
var hdnMaxSelection = $(this).prev("[class*='hdnMaxSelection_']").val();
alert(hdnMaxSelection); // I am getting here 'undefined'.
答案 0 :(得分:1)
您必须在此上下文中使用.siblings()。因为.prev()只会查找具有所提供约束的前一个兄弟姐妹。
尝试,
$(".chkSuppItem").click(function () {
var hdnMaxSelection = $(this).siblings("[class*='hdnMaxSelection_']").val();
alert(hdnMaxSelection);
});
或者您可以尝试.prevAll(selector),
$(".chkSuppItem").click(function () {
var hdnMaxSelection = $(this).prevAll("[class*='hdnMaxSelection_']").first().val();
alert(hdnMaxSelection);
});
<强> DEMO for .prevAall() 强>
答案 1 :(得分:1)
您可以使用 siblings() :
var hdnMaxSelection = $(this).siblings("[class*='hdnMaxSelection_']").val();
目前,您的选择器仅针对第一个复选框进行更正,因为隐藏的输入是第一个复选框的前一个兄弟元素。
使用siblings()
,只要您的隐藏输入是您的复选框的兄弟,那么它就能正常工作。
<强> Fiddle Demo 强>