jquery不工作改变内部HTML?
嘿,我是jquery的新手,我一直试图像过去几个小时那样解决这个问题……我到底做错了什么? 我想做的就是改变div的innerHTML。
$("left_menu_bar").innerHTML = "You clicked me!";
但是当我用该代码init调用函数时,div根本没有改变。
像这样做:
// 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!");
jQuery总是返回一个jQuery 集合 –而不是一个DOM元素。 要直接访问DOM属性,您需要从集合中检索元素:
$(".left_menu_bar").first().innerHTML = "You clicked me!";
然而,这并不是很方便,而helmus的回答描述了通常的事情。
由于left_menu_bar不是元素,因此您无法以这种方式选择它。
如果它是元素的ID,请尝试:
$("#left_menu_bar").html("You clicked me!");
如果它是元素的类,请尝试:
$(".left_menu_bar").html("You clicked me!");
您正在尝试将一些文本分配给名为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的内容。