使用jQuery的children()方法遇到的问题

    xiaoxiao2021-03-25  66

    项目中一个页面上循环生成了多个表单, 每个表单都有一个submit按钮, 单个提交, 提交之前要做验证, 从当前要提交的表单中获取input的值,  并进行验证, 用到了children()方法, 但是突然发现有的节点获取不到, 查看文档, 发现children方法时这样介绍的

    鉴于一个jQuery对象,表示一个DOM元素的集合,.children()方法允许我们通过在DOM树中对这些元素的直接子元素进行搜索,并且构造一个新的匹配元素的jQuery对象。.find()和.children()方法是相似的,但后者只是针对向下一个级别的DOM树。还要注意的是和大多数的jQuery方法一样,.children()不返回文本节点;让所有子元素包括使用文字和注释节点,建议使用.contents()。

    原来 children()只能获取当前对象的下一级节点, 但是页面结构是这样的, 这样就导致能获取到locationId, 但是不能获取到 placeStartDate 的值, 然后在网上查, 发现了直接用jQuery的选择器 $(selector, context) 传入参数即可, 第一个是选择器, 第二个是 jQuery 对象, 

    <s:iterator value="form.list" var="vals"> <li> <form method="post" action="ajax/saveXmlContent.do"> <input name="form.locationId" id="locationid" value="<s:property value="form.locationId"/>" type="hidden" /> <input name="form.language" id="language" value="<s:property value="form.language"/>" type="hidden" /> <input name="form.xmltype" id="xmltype" value="<s:property value="form.xmltype"/>" type="hidden" /> <input name="form.xmlUrl" id="xmlUrl" value="<s:property value="form.xmlUrl"/>" type="hidden" /> <input name="bootForm.contentId" id="contentId" type="hidden" value="<s:property value="#vals.contentId"/>" /> <div class="num"> <s:property value="#vals.weight" /> </div> <div class="tdiv info"> <div class="tdiv i5"> <div class="tdiv i51"> <!-- 日期选择 --> <div id="time"> <div class="tdiv mWidth500"> <ul class="tdiv dateInterval"> <li class="dateType"><label>开始日期</label> <input type="text" name="amsRecommendConfig.placeStartDate" id="placeStartDate" value="<s:property value="#vals.placeStartDate"/>" /></li> <li class="dateType"><label>结束日期</label> <input type="text" name="amsRecommendConfig.placeEndDate" id="placeEndDate" value="<s:property value="#vals.placeEndDate"/>" /></li> </ul> </div> </div> <div class="tdiv i52"> <button class="btn submit" type="submit" id="submit" name="submit_<s:property value="#vals.contentId"/>" οnclick="submitContent(this)">确认保存</button> </div> </div> </div> </form> </li> </s:iterator> function beforeSubmitForm(curform){ var obj = $(curform[0]).get(0); var jqObj = $(obj); var xmltype = jqObj.children("input#xmltype").val(); if (xmltype == 1){ var inputStartDate = new Date($("#placeStartDate",jqObj).val().replace(/-/g,"-")); var inputEndDate = new Date($("#placeEndDate",jqObj).val().replace(/-/g,"-")); console.log(inputStartDate + "---" + inputEndDate); if(inputStartDate>inputEndDate){ $.ligerDialog.error("开始日期应在结束日期之前!"); return false; }else{ return true; } }else{ return true; } }

    转载请注明原文地址: https://ju.6miu.com/read-40254.html

    最新回复(0)