jQuery获取隐藏输入的值

时间:2014-07-23 14:42:27

标签: javascript jquery html

我有一个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选择器一起使用。

任何帮助都将不胜感激。

5 个答案:

答案 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());
    });
});

DEMO

答案 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());
});