jQuery:.closest添加class属性,但不添加我的预期值
快速预览问题:使用jQuery:.closest添加class属性,但不添加我的预期值,jquery,jquery-validate,closest,Jquery,Jquery Validate,Closest,快速预览问题:使用.closest(),我能够在目标元素的所有实例上粘贴class属性,但它不会在祖先DOM中有额外的任何实例上插入class值 首先,这里是jQuery: // Throw class="errorWrap" on any <li> element that contains a field that doesn't validate highlight: function(element) { $(element).closest("li").addCla
.closest()
,我能够在目标元素的所有实例上粘贴class属性,但它不会在祖先DOM中有额外
的任何实例上插入class值
首先,这里是jQuery:
// Throw class="errorWrap" on any <li> element that contains a field that doesn't validate
highlight: function(element) {
$(element).closest("li").addClass("errorWrap");
}
//对任何包含未验证字段的元素抛出class=“errorWrap”
亮点:功能(元素){
$(元素)。最近的(“li”).addClass(“errorWrap”);
}
(…突出显示:'是验证插件的一部分…)
下面是我的HTML的一个片段:
<li>
<div>
<span class="reqField">*</span> Have you been employed with us before?<br />
<label class="radioInput"><input type="radio" name="app_prior_employ" value="Yes" /> Yes</label>
<label class="radioInput"><input type="radio" name="app_prior_employ" value="No" /> No</label>
</div>
<div>
<label for="app_prior_employ_date">If <em>yes</em>, when were you employed?</label><br />
<input type="text" name="app_prior_employ_date" value="" size="40" id="app_prior_employ_date" />
</div>
</li>
*您以前受雇于我们吗?
对
不
如果是,您是什么时候被录用的?
…现在,通过上面的操作,class属性将添加到开头的
标记中,但它的值将是空的,而不是errorWrap>
正如我在这个问题的顶部提到的,这个问题只发生在混合中包含
元素的实例上(就像上面所做的那样)。此问题不会出现在
未安装到位的其他情况下,例如:
<li>
<span class="reqField">*</span> Can you travel if a job requires it?<br />
<label class="radioInput"><input type="radio" name="app_travel_for_job" value="Yes" /> Yes</label>
<label class="radioInput"><input type="radio" name="app_travel_for_job" value="No" /> No</label>
</li>
*如果工作需要,你能出差吗?
对
不
我不明白为什么jQuery能够成功地将class属性添加到我想要的任何地方,但却无法将我定义的值插入到那些在DOM中有额外元素的地方。我是否使用了.closest()
不正确
稍后添加:这里是问题的标记屏幕截图:改用家长
$(element).parents("li").addClass("errorWrap");
您正确地使用了nextest(),但在该实例中,highlight()函数所在的上下文可能是错误的。在脚本检查器中,在highlight函数中放置一个断点,然后查看元素是否是您认为的实际输入
或者,您说li有一个类,但当div在混合中时没有值。也许这门课已经准备好了,然后马上就取消了。使用脚本检查器并设置断点将帮助您解决这个问题。应该可以。请创建一个示例来演示您的问题。如果您使用
.parents('li')
,该怎么办?奇怪的是,如果我使用.parents('li'),同样的精确结果。它在这个测试中工作得很好,所以您的应用程序中一定有其他东西引起了头痛:jlbruno:您太棒了。看起来我需要解决代码中其他地方的问题。Validate插件返回元素作为第一个参数。因此,它应该与父母('li')一起工作。我肯定需要对自己进行一些关于断点/firebug等的培训。我可以像向导一样检查HTML/CSS,但我不知道我在脚本区域做了什么.我刚刚确认这个问题肯定是你的第二个建议:类值设置正确,但也会立即取消设置。看起来好像unhighlight(它会剥离类,并且只应该在字段验证时运行)正在立即运行。如果我使用.parents('li'),奇怪的是,同样的结果。(如果需要,我还添加了一个屏幕截图以提供帮助:)