如何通过Javascript定位此兄弟CSS

问题描述 投票:-1回答:2

如何通过Javascript定位原始HTML将具有额外的.checkmark-disabled类,如欲望输出。

原始HTML 1

<div>
<input type="checkbox" disabled>
<span class="checkmark">
</div>

原始HTML 2

<div>
<input type="checkbox">
<span class="checkmark">
</div>

欲望输出

<div>
<input type="checkbox" disabled>
<span class="checkmark checkmark-disabled">
</div>

表示它只是目标禁用输入,然后将.checkmark-disabled添加到span类。

附加信息:我需要针对兄弟css而不是整个div。

javascript
2个回答
0
投票

请参阅W3School以查找要定位的场景。如果你指的是目标元素之后的兄弟,那么你可以在你的CSS中使用+标志。

input + span Means选择在<span>元素之后立即放置的所有<input>元素

为了使它更先进,基于input状态来改变兄弟风格,你可以在你的:checked css中添加:disabledinput + span

input:disabled + span Means选择在<span>元素之后立即放置的所有<input disabled>元素。

有更多的方法来做CSS选择器,但更好地参考W3School。

如果您想使用javascript或jquery来执行DOM,那么您必须更具体,并提供您正在使用但无法工作的代码。


0
投票

您应该考虑使用:checked:disabled伪选择器及其化合物将样式应用于兄弟元素:

input + .checkmark {}
input:checked + .checkmark {}

input:disabled + .checkmark {}
input:checked:disabled + .checkmark {}

请注意,使用这种方法,您将需要覆盖应用于基本选择器的样式(这完全没问题,但您可能会感到困惑)。要应用不同的样式而不覆盖,可以像这样使用:not()伪选择器:

input:not(:checked) + .checkmark {}

对于IE8及更少,您可以使用这样的语法:

input[disabled] + .checkmark {}

More information on pseudo-class selectors

© www.soinside.com 2019 - 2024. All rights reserved.