在jQuery Mobile中设置HTML元素的属性时出现问题

时间:2012-03-07 09:38:21

标签: javascript jquery jquery-mobile

我想动态更改页面的数据主题属性(jQuery Mobile),所以我将动作绑定到按钮,此动作获取我想要更改它的'数据主题'的页面的ID然后将它的'数据主题'设置为任何样本(a,b,c,d或e),当我按下按钮没有主题更改时,这里是HTML:

    <div data-role="page" id="admin" data-theme="a" class="page">

    <div data-role="header">

    </div><!-- /header -->

    <div data-role="content"> 
    <a href="#" id="themeButton" data-theme="b" data-role="button" data-inline="true" >ChangeTheme</a>
     </div><!-- /content -->

    <div data-role="footer" data-position="fixed" data-id="ew-footer" class="ui-splitview-hidden">

    </div><!-- /footer -->
  </div><!-- /page -->

这是我的JavaScript:

<script>
    $('#admin').live('pageinit', function (event) {
        $('#themeButton').click(function () {

            document.getElementById('admin').setAttribute('data-theme', 'b')

        });
    });
</script>

1 个答案:

答案 0 :(得分:1)

document.getElementById('RemoveButton').setAttribute('data-theme','b')

您的标记没有id值“RemoveButton”的元素,因此代码将抛出异常,因为document.getElementById('RemoveButton')将返回null,您正在尝试取消引用。


另外,因为你已经使用了jQuery,为什么不在那里使用它? E.g。

$("#RemoveButton").attr("data-theme", "b");

这至少可以防止你收到错误,但当然它不会做任何事情(因为,再次说明你所引用的标记中没有id的元素。)