繁体   English   中英

jQuery获取隐藏输入的值

[英]jQuery get value of hidden input

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

任何帮助,将不胜感激。

您必须这样做:

$(document).on('click', '.addressOpt', function(e) {
    alert($(this).find("[name=XCITY]").val()); 
});

您可以使用$(this)查找html dom元素并获取此值。

单击使用此代码的链接时,可以使用each函数获取所有隐藏数据。

$(document).on('click', '.addressOpt', function (e) {
    $(this).find('input[type="hidden"]').each(function () {
        alert($(this).val());
    });
});

演示

我认为这样会起作用:

$(".addressOpt").on("click", function(e) {
    alert($(this).find("input[name='XCITY']").val());
});

它应在已单击的<a>中找到隐藏的字段。

我也将使用e.preventDefault(); 而不是href=javascript:void(0);

首先,我建议您将结果放入数组中,然后显示所需的值

var elems = $("[name=XCITY]");

alert($(elems[0]).val()); // will show "DELROY"
alert($(elems[1]).val()); // will show "LEXINGTON"

问题是因为你在说

alert($("[name=XCITY]").val());

因此,它将返回具有该名称的第一个元素的值。

说这个。 它将获得当前单击的anchor并在该anchor中给出名称为XCITY的元素的值。

$(document).on('click', '.addressOpt', function(e) {
    alert($(this).find("[name=XCITY]").val());
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM