Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.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 我的div包含一个元素,但该元素没有';使用.children()进行迭代时不会显示_Javascript_Html_Django_Show Hide - Fatal编程技术网

Javascript 我的div包含一个元素,但该元素没有';使用.children()进行迭代时不会显示

Javascript 我的div包含一个元素,但该元素没有';使用.children()进行迭代时不会显示,javascript,html,django,show-hide,Javascript,Html,Django,Show Hide,以下是我在Django应用程序中使用的html: <div id="mahal_questions" class="showHide_div"> {{soldier.mahal_status.label_tag}} {{soldier.mahal_status}} {{soldier.mahal_status.errors}} {{s

以下是我在Django应用程序中使用的html:

<div id="mahal_questions" class="showHide_div">
                        {{soldier.mahal_status.label_tag}}
                        {{soldier.mahal_status}}
    {{soldier.mahal_status.errors}}
                        {{soldier.mahal_program.label_tag}}
                        {{soldier.mahal_program}}
    {{soldier.mahal_program.errors}}
    <p>
                        {{soldier.mahal_id.label_tag}}
                        {{soldier.mahal_id}}
    {{soldier.mahal_id.errors}}</p>
</div>
                        {{soldier.currently_serving.label_tag}}
                        {{soldier.currently_serving}}
<div id="currently_serving_questions" class="showHide_div">
                        {{soldier.idf_id.label_tag}}
                        {{soldier.idf_id}}
    {{soldier.idf_id.errors}}
    <p></p> <!--prevents the error message from running into the next label-->
                        {{soldier.army_unit.label_tag}}
                        {{soldier.army_unit}}
    {{soldier.army_unit.errors}}
                        <p>{{soldier.tafkid.label_tag}}
                        {{soldier.tafkid}}
                            {{soldier.tafkid.errors}}</p>
</div>

{{soldier.mahal_status.label_tag}}
{{士兵.马哈卢状态}
{{soldier.mahal_status.errors}}
{{soldier.mahal_program.label_tag}}
{{士兵.马哈卢计划}
{{soldier.mahal_program.errors}

{{soldier.mahal_id.label_tag}}
{{士兵,马哈尔}
{{soldier.mahal_id.errors}}

{{士兵。目前{正在服役。标签} {{士兵,目前在服役} {{soldier.idf_id.label_tag} {{士兵,以色列国防军} {{soldier.idf_id.errors}

{{士兵.陆军部队.标签} {{士兵.陆军部队} {{士兵.陆军部队.错误} {{soldier.tafkid.label_tag}} {{士兵.塔夫基德} {{soldier.tafkid.errors}

这里有两个div,每个div包含3个字段。 mahal_问题包括 mahal_状态、mahal_计划和mahal_id 目前的问题包括 国防军、陆军部队和塔夫基德战场

然而,由于某种原因,当我在我的div中循环,并且在每个div中循环我的元素时,我只看到每个div中的前两个元素。最后一个元素被忽略。(我想这个问题可能是在我添加了一些
元素时开始的,但我不确定。)

这是我的js(该方法旨在循环页面上的每个div,如果div是隐藏的,则在提交时循环元素并擦除它们的值,以便隐藏字段的值不会发送到db):

$('#摄入_形式')。提交(函数(){
var showhideDivList=document.getElementsByClassName(“showHide_div”);//避免在没有显示/隐藏的页面上出现错误
如果(showhideDivList.length>0){
//获取每个显示/隐藏div
数组.from(showhideDivList).forEach(函数(div){
控制台日志(div);
//如果这个div是隐藏的
如果($(div).is(“:hidden”)){
////对于将在div中显示/隐藏的每个元素
var元素=$(div.children();
log(“elements.length:+elements.length”);
对于(var i=0;i
请参见评论中的Pointy的答案。 问题是我将两个“缺失”字段包装在
标记中,因此.children()函数将捕获
而不是
/code>中的元素。谢谢你,尖头


为了解决这个问题,我只需将

放在mahal_id和tafkid字段之前,将它们的标签推到错误消息之后的行上,然后它们直接放在各自的div下,并将包含在.children()的结果中函数。

能否显示呈现的html请选择
元素将是
元素的子元素,并且循环不会在这些元素中迭代。通常在浏览器中使用“查看页面源代码”。一旦确定模板中的内容确实存在,您就知道您正在处理的是JQuery或Javascript问题,而不是Django问题。
 $('#intake_form').submit(function() {
  var showhideDivList = document.getElementsByClassName("showHide_div"); //To avoid errors on a page with no show/hides
        if (showhideDivList.length > 0) {
            //get each show/hide div
            Array.from(showhideDivList).forEach(function (div) {
                console.log(div);
                //if this div is hidden
                if ($(div).is(":hidden")){
                    // //for each element that is going to be shown/hidden within the div
                    var elements = $(div).children();
                    console.log("elements.length:" + elements.length);
                    for (var i = 0; i < elements.length; i++) {
                        var element = elements.eq(i);
                        console.log(element);
                        console.log("value", element.val());
                        element.val("");
                        console.log("value", element.val());
                    }
                }
            });
        }
});