【发布时间】:2021-04-22 18:09:02
【问题描述】:
我正在尝试使用 jquery 在我的 html 中隐藏两个 div。一个工作正常,但另一个不工作。
正在工作的div 只有一个类class='row',而没有工作的div 有class='p-2 d-flex pt-3'
当我将这个不起作用的 div 更改为 row 时,它就起作用了。我不知道为什么这不适用于其他类?
$("#selOpt").change(function() {
$(this).find("option:selected").each(function() {
var value = $(this).attr("value");
if (value == 'wic') {
$("#cus-note").hide();
$("#cus-dues").hide();
} else {
$("#cus-note").show();
$("#cus-dues").show();
}
});
}).change();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="selOpt" multiple>
<option value="">Select...</option>
<option value="wic">Wic</option>
<option value="foo">Foo</option>
</select>
<!-- working -->
<div class="row cus-note" id="cus-note">
<textarea type="text" class="form-control note-field" name="cust_note" value="" id="cust_note" placeholder="New Note..." required></textarea>
</div>
<!-- not working -->
<div class="p-2 d-flex pt-3" id="cus-dues">
<div class="col-8">Dues</div>
<div class="ml-auto" id="cust_dues"></div>
</div>
【问题讨论】:
-
只是猜测,可能与您在应用中引用的库/css 的顺序有关
-
我不这么认为,因为如果那会是一个问题,那么两个 div 都不应该工作。问题是这仅适用于
class ='row'情况,而当我更改课程时它不会。 -
我将您问题中的代码编辑到一个可以正常工作的 sn-p 中。我们无法在不查看问题原因的情况下调试问题。因此,您能否在本地副本的 devtools 中检查控制台并报告它列出的任何问题。
-
when i change class of this not working div to row then it works这意味着它可能与 CSS 规则特异性有关。检查 DOM 以查看应用了哪些类/内联样式。 -
感谢您的回复@RoryMcCrossan。我只是想通了这个案子。在第二个
div中,我使用的是d-flex,当我在引导程序中检查它时,它使用display: flex !important;,它覆盖了.hide() 函数。所以我设法解决了这个问题及其现在的工作。
标签: javascript html jquery bootstrap-4