4

次のような HTML Div (Twitter Bootstrap を使用して hide-show を使用していますdiv2) があります。

HTML:

<div id="div1">
  <button id="mybtn">Button</button>
  <div id="div2" class="modal hide fade span12" style="display: none;">
    <button id="anotherButton" data-char="">AnotherButton</button>
  </div>
</div>

jQuery を使用して、data-charをクリックしているときに の値を変更しようとしていmybtnます。しかし、成功しなければ原因div2は隠されています。console.log($('#anotherButton'));空の配列を返します。

jQuery または Javascript を使用して非表示の DOM にアクセスする方法はありますか?

*編集:* これを試してもうまくいかない場合は、次を返しundefinedます:

$('#mybtn').live('click', function(e) 
{
    //or e.preventDefault();
    $('#anotherbutton').attr("data-char", "assigned");
    alert($('#anotherbutton').attr("data-char"));
});
4

4 に答える 4

3

あなたはそれを割り当てることができます

ライブデモ

$(function(){
    $('#anotherButton').attr('char', "assigned");
    alert($('#anotherButton').attr('char'));
});​

ボタンクリック時

ライブデモ

$(function(){
   $('#anotherButton').attr('data-char', "assigned");
   alert($('#anotherButton').attr('data-char'));
});​
于 2012-08-06T16:03:54.317 に答える
1

data非表示状態の要素ではメソッドが機能しないようです。メソッドを使用する必要がありますattr

これはうまくいくはずです

$(function(){
  $("#mybtn").click(function(e){
    e.preventDefault();
        $("#anotherButton").attr("data-char","new value");
  });    
});

作業サンプルhttp://jsfiddle.net/kshyju/a7Cua/4/

于 2012-08-06T16:02:42.830 に答える
1

隠されているという事実は何も変わりません。おそらく問題は、js コードがボタン HTML の前にあることです。後で配置するか、リスナーに配置して、$(document).ready()アクセスしようとしたときに処理されたことを確認します。

于 2012-08-06T16:03:14.140 に答える
0

試す$(button:hidden)

これは通常、次のような場合に機能します。

ソース: http://api.jquery.com/hidden-selector/

于 2012-08-06T16:05:48.947 に答える