Javascript 如何使用jQuery访问隐藏的Dom元素?

Javascript 如何使用jQuery访问隐藏的Dom元素?,javascript,jquery,Javascript,Jquery,我有一个HTML Div(我正在使用Twitter引导来隐藏showdiv2),看起来像这样: 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=""&

我有一个HTML Div(我正在使用Twitter引导来隐藏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>

看起来
data
方法对处于隐藏状态的元素不起作用。您应该使用
attr
方法

这应该行得通

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

工作样本被隐藏的事实不会改变任何东西。问题可能是js代码在HTML按钮之前。可以将它放在后面,也可以将它放在侦听器中,如
$(document).ready()
,以确保在您尝试访问它时它已被处理。

您可以分配它

点击按钮

$(function(){
   $('#anotherButton').attr('data-char', "assigned");
   alert($('#anotherButton').attr('data-char'));
});​
尝试
$(按钮:隐藏)

这通常适用于这样的事情


资料来源:http://api.jquery.com/hidden-selector/

确保已将代码包装在DOM就绪处理程序中。它是否隐藏并不重要,重要的是它是否在页面上。如果
console.log($('#另一个按钮')
实际上只返回它不在页面上或者选择器中有一个输入错误。让我们来看看更多的代码。如果元素只是不可见,但仍然是DOM的一部分,那么应该可以正常工作。哇,我刚刚去测试了它,它确实返回了
未定义的
。现在这很有趣。奇怪的是,如果你直接将“答案”代码复制到文件并刷新页面,它应该可以工作。属性必须是“数据字符”,而不是“字符”。当我使用它时!它的返回值
未定义:(
e.preventDefault
让我选择你的答案!谢谢
$(function(){
    $('#anotherButton').attr('char', "assigned");
    alert($('#anotherButton').attr('char'));
});​
$(function(){
   $('#anotherButton').attr('data-char', "assigned");
   alert($('#anotherButton').attr('data-char'));
});​