Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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或Jquery中获取父div中的子child计数?_Javascript_Jquery_Html - Fatal编程技术网

如何在javascript或Jquery中获取父div中的子child计数?

如何在javascript或Jquery中获取父div中的子child计数?,javascript,jquery,html,Javascript,Jquery,Html,我不知道如何计算父分区中的子分区,也许有人能帮我解决这个问题。我不太擅长javascript或Jquery 这是我的密码: $(function () { var parent = document.getElementById('parent').children; var cnt = 0; if (parent) { var match = 'child'; for (var i = 0; i < parent.length; i

我不知道如何计算父分区中的子分区,也许有人能帮我解决这个问题。我不太擅长javascript或Jquery

这是我的密码:

$(function () {
    var parent = document.getElementById('parent').children;
    var cnt = 0;
    if (parent) {
        var match = 'child';
        for (var i = 0; i < parent.length; i++) {
            var temp = parent[i].getAttribute('id');
            if (temp.indexOf(match) == 0) {
                cnt++;
            }
        }
    }
    console.log(cnt);
});
$(函数(){
var parent=document.getElementById('parent').children;
var-cnt=0;
如果(家长){
变量匹配='子';
对于(变量i=0;i

您可以使用选择器

[id^=subchild]
将选择其
id
值以(
^
子项开始的所有元素

选择具有指定属性且值正好以给定字符串开头的元素

$(函数(){
var subchildrenLen=$('#parent[id^=subchild]')。长度;
$('body').append('No of children='+subchildrenLen);
});

您可以试试这个:

$(document).ready(function() {
      alert($('#parent [id^=subchild]').length)
});

由于
子孩子
div的子孩子
父孩子
的子孩子,您可以使用选择器
\parent>div>div

$(函数(){
var len=$('#parent>div>div')。长度;
警报(len);
});

属性包含选择器[名称*=“值”]


这里根本不需要jQuery,只需使用并检查返回节点列表的长度即可

console.log(document.querySelectorAll('#parent>[id^=child]').length)



非常感谢您,先生@Tushar。我马上就接受。这不是操作码的功能。您可以捕获父级(任何嵌套级别)中ID以“subchild”开头的任意div。原始代码只查找1级深度,并查找“child”。当然,这是一个简单的解决方案。为了完全匹配它,我会将其设置为
#parent>[id^=child]
@Amit是的,这会有点困难efficient@aldrin27您是指id以
subchild
开头的元素,可以更新答案。无论如何,您已经有了这样的想法:)您根本没有使用jQuery。为什么要问它,如果不需要,为什么要将它“引入”到代码库中?是的,但我知道有一个代码可以使用jquery获得我想要的输出。您可以用非常简单的方式(甚至一行)不用jquery就可以做到,请看我的答案。我不相信为了简单的任务而去臃肿的库。请编辑你的问题,包括相关的HTML,并准确解释你想要计算的内容,因为您当前的问题不是您在回答的注释中所要求的。有一个问题,您还可以在这里得到child div的数量,对吗?我想OP只需要子孩子。@Pekka,它完全模仿OP代码的功能。如果意图不同,应该注意。为了完全匹配它,我会将其设置为
#parent>[id^=child]
。同样适用于您:)@Amit OP想要子孩子,请查看我答案上的评论,您需要更新您的答案才能获得答案valid@Tushar-谢谢,但不用了,谢谢。答案应该解决评论中的请求,他们应该解决张贴的问题。否则,当有人在6个月后遇到这个问题时,会说:“嘿,这正是我需要的!让我们看看答案吧!”他们会得到一个与问题不匹配的答案,会感到困惑,并发现代码不起作用。这不是设计的方式。这将是一个糟糕的选择,因为OP想要选择直接的孩子(可以从相关代码中看到),并且
div[id*=“child”]
将给出结果
6
*
@Tushar的副作用这就是为什么我使用的选择器文本是subchild,因为他想要subchild。请检查有问题的代码。注意
var匹配='child'
if(temp.indexOf(match)=0{cnt++;}
@tusharcode可能是错误的,但问题表明
div的子孩子
很明显,我们可以说他想要带有
子孩子
ID
的div,我们可以假设代码有点不明白OP想要什么,你的回答也是正确的
alert($('#parent').find('div[id*="subchild"]').length)