gpt4 book ai didi

javascript - 使用 JQuery 查询父类的最简洁方法

转载 作者:行者123 更新时间:2023-11-28 11:17:10 24 4
gpt4 key购买 nike

我无法找到令我满意的解决方案。

我正在使用一些复合组件,但我无法完全控制它们,现在我必须使用 JavaScript 为它们设置值,我认为 JQuery 对我很有帮助,就像它所做的那样。

发生的情况是组件的 HTML 输出具有与此类似的结构:

<span id="externalSpan">
<span id="internalSpan">
<input type="text" class="component-value" />
</span>
</span>

所以我所要做的就是检查 component-value 输入,如果它为空,我就为其设置默认值。

我是这样解决的:

$(document).ready(function(){

var defaultValue = $('#defaultValue').val();

$('.component-value').each(function(){
if(!$(this).val()){
$(this).val(defaultValue);
}
});

});

效果很好,但现在我需要评估一个新的条件。如果组件具有 manualInput CSS 类,我无法设置它的值,但该类是在 externalSpan(输入的祖父组件)上设置的,它看起来像这样:

<span id="externalSpan" class="manualInput">
<span id="internalSpan">
<input type="text" class="component-value" />
</span>
</span>

我发现最简单的方法是这样的:

if(!$(this).parent().parent().hasClass('manualInput')){ ... }

它确实有效,但对我来说似乎真的很臭,另一个解决方案是使用类选择器调用 parents() 并检查 length,但这看起来很奇怪也是。

有没有更干净的方法可以做到这一点?如果不是,上述 2 个选项中哪一个是更好的解决方案?

最佳答案

因此将检查添加到选择器

$('span:not(.manualInput) > span > .component-value').each(function(){

Example JSFiddle

关于javascript - 使用 JQuery 查询父类的最简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17150355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com