Jquery 如何从嵌套在div中的隐藏输入元素中获取文本

Jquery 如何从嵌套在div中的隐藏输入元素中获取文本,jquery,input,selector,hidden,Jquery,Input,Selector,Hidden,我有以下html代码: <a class="tog" href="#">Click Me</a> <div class="result"> <input type="hidden" name="hid" value="val01" /> This is a container div </div> <br /> <a class="tog" href="#">Click Me</a>

我有以下html代码:

<a class="tog" href="#">Click Me</a> 
<div class="result">
    <input type="hidden" name="hid" value="val01" />
    This is a container div
</div> <br />
<a class="tog" href="#">Click Me</a> 
<div class="result">
    <input type="hidden" name="hid" value="val02" />
    This is a another container div
</div>
应该是:

$(document).ready(function () {
  $(".tog").click(function () {
    var $this = $(this);
    if (!$this.next(".result").data('loaded')) {
        alert($this.next().find("input[name=hid]").val());
    }
  });
});

应该是:

$(document).ready(function () {
  $(".tog").click(function () {
    var $this = $(this);
    if (!$this.next(".result").data('loaded')) {
        alert($this.next().find("input[name=hid]").val());
    }
  });
});

代码的问题在于,您使用的是,它被文档用于获取匹配元素集中每个元素紧跟其后的同级元素。如果提供了选择器,则仅当它与该选择器匹配时,才会检索下一个同级。。在这里,您的“$this”指向锚点,当您尝试执行
$this.next(“input[name=hid]”.val()
时,它没有任何名为“hid”的直接同级,这就是您得到未定义am的原因

请尝试以下代码:

$(document).ready(function(){
    $(".tog").click(function(){
       var $this=$(this);
    alert($this.next("div").find("input[name=hid]").val());   
     });
});

代码的问题在于,您使用的是,它被文档用于获取匹配元素集中每个元素紧跟其后的同级元素。如果提供了选择器,则仅当它与该选择器匹配时,才会检索下一个同级。。在这里,您的“$this”指向锚点,当您尝试执行
$this.next(“input[name=hid]”.val()
时,它没有任何名为“hid”的直接同级,这就是您得到未定义am的原因

请尝试以下代码:

$(document).ready(function(){
    $(".tog").click(function(){
       var $this=$(this);
    alert($this.next("div").find("input[name=hid]").val());   
     });
});

您可以执行以下操作:

获取下一个元素,即结果类的div。从那里你可以找到隐藏的输入并得到它的值

Javascript:

$(document).ready(function(){
    $(".tog").click(function(){
        var atag = $(this);
        var hiddenInput = atag.next().find('input[type=hidden]');
        alert(hiddenInput.val());         
    });
});

您可以执行以下操作:

获取下一个元素,即结果类的div。从那里你可以找到隐藏的输入并得到它的值

Javascript:

$(document).ready(function(){
    $(".tog").click(function(){
        var atag = $(this);
        var hiddenInput = atag.next().find('input[type=hidden]');
        alert(hiddenInput.val());         
    });
});
简单的

简单的


请尝试
$this.next().find(“输入[name=hid]”).val()
insteadTry
$this.next().find(“输入[name=hid]”).val()
insteadTry非常感谢大家的快速回复。虽然解决方案非常简单,但对我来说很难,因为我是jquery的新手。我的问题现在解决了。再次感谢大家。非常感谢大家的快速回复。虽然解决方案非常简单,但对我来说很难,因为我是jquery的新手。我的问题现在解决了。再次感谢大家。根据我的说法,这是最简单的,所以我标记了它,尽管所有的答案都很有用。如果有选择接受多个答案,我也会给其他答案打分。我认为这是最简单的,所以我给它打分,尽管所有答案都很有用。如果有选择接受不止一个答案,我也会给其他答案打分。