Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么$(';#主要内容';).children(';p';).html()不';不能在jQuery中工作_Javascript_Jquery_Html - Fatal编程技术网

Javascript 为什么$(';#主要内容';).children(';p';).html()不';不能在jQuery中工作

Javascript 为什么$(';#主要内容';).children(';p';).html()不';不能在jQuery中工作,javascript,jquery,html,Javascript,Jquery,Html,很抱歉,我是jQuery的初学者,也是stackoverflow的新手,我很难区分它们与那些DOM元素的区别。 我想更改元素中的innerHTML,但发生了一些奇怪的事情 比如说 html代码: <div id='main-content'> <p id='p0'>0</p> <p>0</p> </div> 我想将第一个和第二个元素的innerHTML从0更改为100,但是第二个方法p[1].html('

很抱歉,我是jQuery的初学者,也是stackoverflow的新手,我很难区分它们与那些DOM元素的区别。 我想更改
元素中的innerHTML,但发生了一些奇怪的事情

比如说

html代码:

<div id='main-content'> 
    <p id='p0'>0</p>
    <p>0</p>
</div>

我想将第一个和第二个元素的innerHTML从0更改为100,但是第二个方法p[1].html('100')不起作用…控制台说TypeError:p[1].html不是函数。请帮帮我,Firebug告诉我$('#p0')是[object object],p[1]是[object HTMLParagraphElement],你能给我解释一下区别吗,非常感谢你,因为
p[1]
,就像
p.get(1)
一样,返回DOM元素

用于获取集合中索引
1
处的jQuery对象:

p.eq(1).html('100');

这是因为
p[1]
,就像
p.get(1)
,返回DOM元素

用于获取集合中索引
1
处的jQuery对象:

p.eq(1).html('100');
jQuery还支持选择器。所以你也有这个选择

$("#main-content p:nth-child(2)").text("100");
正如dystroy所说,访问jQuery数组将返回DOM元素。您可以使用eq之类的帮助器,或者通过再次包装DOM元素来创建另一个jQuery对象。例如,要修复原始代码,只需执行以下操作:

var p=$('#main-content').children('p');
$(p[1]).html('100');
编辑:我重新阅读了问题,您似乎想更新两个段落元素的内容。在这种情况下,它变得更加简单:

$("#main-content p").text("100");
jQuery将作用于所有选定的对象。请阅读jQuery如何使用

jQuery还支持选择器。所以你也有这个选择

$("#main-content p:nth-child(2)").text("100");
正如dystroy所说,访问jQuery数组将返回DOM元素。您可以使用eq之类的帮助器,或者通过再次包装DOM元素来创建另一个jQuery对象。例如,要修复原始代码,只需执行以下操作:

var p=$('#main-content').children('p');
$(p[1]).html('100');
编辑:我重新阅读了问题,您似乎想更新两个段落元素的内容。在这种情况下,它变得更加简单:

$("#main-content p").text("100");

jQuery将作用于所有选定的对象。请仔细阅读jQuery如何使用

如果您希望两个值相同,那么只需使用:
$(“#main content”).children('p').html('100')-如果您希望两个值相同,那么只需使用:
$(“#主内容”).children('p').html('100')
-如果知道要查找的元素的id,为什么首先选择父元素,然后使用
.find()
?如果知道要查找的元素的id,为什么首先选择父元素,然后使用
.find()