我有一个ajax调用返回类似这样的内容:
<p>
<a href="javascript:void(0);" class="addressOpt">
John Paul Jones <br/>
399 OAK ST <br/>
DELROY ND 30254 <br/>
<input type="hidden" name="XNAME" value=" John Paul Jones">
<input type="hidden" name="XADD1" value="399 OAK ST">
<input type="hidden" name="XADD2" value="">
<input type="hidden" name="XCITY" value="DELROY">
<input type="hidden" name="XSTA" value="ND">
<input type="hidden" name="XZIP" value="30254">
<input type="hidden" name="XPHON" value="">
</a>
</p>
<p>
<a href="javascript:void(0);" class="addressOpt">
John Paul Jones <br/>
2680 PALUMBO DRIVE <br/>
LEXINGTON KY 40509 <br/>
8592667227
<input type="hidden" name="XNAME" value="John Paul Jones">
<input type="hidden" name="XADD1" value="2680 PALUMBO DRIVE">
<input type="hidden" name="XADD2" value="">
<input type="hidden" name="XCITY" value="LEXINGTON">
<input type="hidden" name="XSTA" value="KY">
<input type="hidden" name="XZIP" value="40509">
<input type="hidden" name="XPHON" value="8592667227">
</a>
</p>
所以我想在点击任何链接时获取每个隐藏的值。
我试过了:
$(document).on('click', '.addressOpt', function(e) {
alert($("[name=XCITY]").val());
});
但是总是给我回到第一个元素(DELROY)的值,即使我点击第二个元素。
我知道我必须使用'this',但不知道将谁与属性equals选择器一起使用。
任何帮助都将不胜感激。
答案 0 :(得分:4)
你必须这样做:
$(document).on('click', '.addressOpt', function(e) {
alert($(this).find("[name=XCITY]").val());
});
您可以使用$(this)查找html dom元素并获取此值。
答案 1 :(得分:2)
使用此代码
单击链接时,可以使用每个函数获取所有隐藏数据$(document).on('click', '.addressOpt', function (e) {
$(this).find('input[type="hidden"]').each(function () {
alert($(this).val());
});
});
答案 2 :(得分:1)
我认为这样的事情会起作用:
$(".addressOpt").on("click", function(e) {
alert($(this).find("input[name='XCITY']").val());
});
它应该找到<a>
中已被点击的隐藏字段。
我还会使用e.preventDefault();
代替href=javascript:void(0);
。
答案 3 :(得分:0)
首先,我建议您将结果放在一个数组中,并显示您需要的值,如此
var elems = $("[name=XCITY]");
alert($(elems[0]).val()); // will show "DELROY"
alert($(elems[1]).val()); // will show "LEXINGTON"
答案 4 :(得分:0)
问题因为你在说
alert($("[name=XCITY]").val());
所以它返回具有该名称的第一个元素的值。
说出来。它会获得当前点击的anchor
,并在XCITY
中提供名称为anchor
的元素的值。
$(document).on('click', '.addressOpt', function(e) {
alert($(this).find("[name=XCITY]").val());
});