Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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 长度获取错误值_Javascript_Jquery_Console_Console.log - Fatal编程技术网

Javascript 长度获取错误值

Javascript 长度获取错误值,javascript,jquery,console,console.log,Javascript,Jquery,Console,Console.log,因此,我有以下代码: function getSubs(){ $element = document.getElementsByClassName("comclass"); console.log($element); $parents = document.getElementsByClassName("parclass"); console.log($parents); $length = $parents.length; console.log($length); } 出于某种未知的原因

因此,我有以下代码:

function getSubs(){
$element = document.getElementsByClassName("comclass");
console.log($element);
$parents = document.getElementsByClassName("parclass");
console.log($parents);
$length = $parents.length;
console.log($length);
}
出于某种未知的原因,$parents的控制台日志显示元素的数量,使用chrome console查看元素的长度显示实际长度,但$length的控制台日志不计算具有类“parclass”的子元素,即使$parents显示了它们。。有没有办法解决这个问题

编辑: 以下是一些HTML:

<div id="comment" class="comclass">
<div id="parent" class="parclass">
    <h4>Texto:</h4>asd<br>
    <h4>User:</h4>alan<h6 onclick="inputSub(this)">Com</h6>
    <p id="id">24</p>
</div>
<div id="input"></div>
<div id="childs">
    <div id="comment" class="comclass">
        <div id="parent" class="parclass">
            <h4>Texto:</h4>dd<br>
            <h4>User:</h4>alan<h6 onclick="inputSub(this)">Com</h6>
            <p id="id">25</p>
        </div>
        <div id="input"></div>
        <div id="childs"></div>
    </div> 
</div>
</div>
<div id="comment" class="comclass">
<div id="parent" class="parclass">
    <h4>Texto:</h4>a<br>
    <h4>User:</h4>alan<h6 onclick="inputSub(this)">Com</h6>
    <p id="id">31</p>
</div>
<div id="input"></div>
<div id="childs"></div>
</div>

Texto:asd
用户:alanCom

24

Texto:dd
用户:alanCom

25

Texto:a
用户:alanCom

31


问题是,childs内部的“.comment”是用PHP和Ajax生成的,选择器找不到它。

好吧,既然您用
jQuery
标记了这个问题,我将尝试为您提供一个jQuery实现(这可能会对您有所帮助):

执行的查询应返回一个列表,其中包含名为.comclass(第一条语句)和.parclass(第二条语句)的类的所有元素


如果这对您没有任何帮助,请编辑发布部分HTML的问题,以便我们重现错误。

请也共享相关的HTML。
getSubs
是否在
$(文档)上被调用。就绪
?与命令“getElementsByClassName”不同,您的只返回2个元素和2个父元素,甚至认为还有另一个。我只记得第三个是在调用函数后生成的,这可能就是问题所在。但是为什么“GetElementsByCassName”可以找到第三个元素,$(“.parclass”)却找不到呢?@alaneugenio,你真的应该用整个代码更新你的问题来复制你的问题。这里的问题是,我的大部分代码都是用PHP和Ajax生成的,“真正的”HTML几乎是空的,你不能从浏览器中获得它吗(当HTML已经提供并完成时)?如果您使用AJAX或任何关联调用将HTML组合在一起,那么当该函数运行时,您无法确切地知道DOM中已经存在什么…在这种情况下,您必须从整个页面的组装的完成点调用它。
function getSubs(){
  var element = $(".comclass");
  console.log(element);

  var parents = $(".parclass");
  console.log(parents);

  var length = $(parents).length;
  console.log(length);
}