4

我有一个 HTML Div(我正在使用 Twitter Bootstrap 隐藏显示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-char当我点击jQuery 时,我试图更改 的值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 回答