1

次の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>

のクリック時に非表示の入力から値を取得するにはどうすればよい<a>ですか? この jquery コードを試していますが、これらの非表示の入力要素から値を取得できません。

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

4 に答える 4

1

単純

$(".tog").click(function () {
    var $this = $(this);
    if (!$this.next(".result").data('loaded')) {
        alert($this.next(".result").children("input:hidden").val());
    }
});
于 2013-03-28T08:03:45.960 に答える
0

そのはず:

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

デモ

于 2013-03-28T07:57:57.600 に答える
0

あなたのコードの問題は、ドキュメントによると 、一致した要素のセット内の各要素の直後の兄弟を取得するために使用されるnext()を使用していることです。セレクターが指定されている場合、そのセレクターに一致する場合にのみ、次の兄弟を取得します。. ここで、「$this」はアンカーを指しています。実行しようとすると$this.next("input[name=hid]").val()、「hid」という名前の直接の兄弟がないため、未定義になります。

このコードを試してください:

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

jsfiddle

于 2013-03-28T07:59:36.577 に答える
0

次のことができます。

結果クラスを持つ div である次の要素を取得します。そこから、隠された入力を見つけて、その値を取得します。

デモ

Javascript:

$(document).ready(function(){
    $(".tog").click(function(){
        var atag = $(this);
        var hiddenInput = atag.next().find('input[type=hidden]');
        alert(hiddenInput.val());         
    });
});
于 2013-03-28T08:01:24.890 に答える