【问题标题】:jquery not working to change inner html?jquery 无法更改内部 html?
【发布时间】:2012-04-03 00:41:46
【问题描述】:

嘿,我是 jquery 的新手,过去几个小时我一直在努力解决这个问题……我到底做错了什么?我想做的就是改变一个div的innerHTML。

$("left_menu_bar").innerHTML = "You clicked me!";

但是当我使用该代码 init 调用函数时,div 根本没有改变。

【问题讨论】:

    标签: jquery


    【解决方案1】:

    这样做:

    // referencing by id
    $("#left_menu_bar").html("You clicked me!");
    // referencing by class name ( will apply to all div's with this class )
    $(".left_menu_bar").html("You clicked me!");
    

    http://api.jquery.com/html/

    【讨论】:

    • $("#left_menu_bar").html("you clicked me");
    • Holy $%*# 我没想到会这么快得到答案,我以为要花几天时间!谢谢!!!!
    【解决方案2】:

    jQuery 总是返回一个 jQuery collection——而不是一个 DOM 元素。为了直接访问 DOM 属性,您需要从集合中检索一个元素:

    $(".left_menu_bar").first().innerHTML = "You clicked me!";
    

    然而,这不是很方便,helmus 的回答描述了事情通常的完成方式。

    【讨论】:

      【解决方案3】:

      您正在尝试将一些文本分配给没有名为 innerHTML 的属性的对象上的名为 innerHTML 的属性。

      jQuery 中的 $ 函数不返回 DOM 元素。它返回一个 jQuery 对象,它提供了在特定的 DOM 元素上执行所有精彩的 jQuery 函数的能力。

      jQuery 对象公开的函数之一是.get(),它将返回它包含的元素之一。

      所以在你的情况下,你可以这样做:

      // 0 means it will return the first element in the jQuery object
      $("left_menu_bar").get(0).innerHTML = "You clicked me!";
      

      或者正如@helmus在他的回答中所说,您可以使用jQuery提供的.html()函数来设置内部实际使用innerHTML的内容。

      【讨论】:

        【解决方案4】:

        因为 left_menu_bar 不是元素,所以不能这样选择。

        如果是元素的ID,试试:

        $("#left_menu_bar").html("You clicked me!");
        

        如果是元素的类,试试:

        $(".left_menu_bar").html("You clicked me!");
        

        【讨论】:

          猜你喜欢
          • 2014-09-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多