如何通过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。
请参阅W3School以查找要定位的场景。如果你指的是目标元素之后的兄弟,那么你可以在你的CSS中使用+
标志。
input + span
Means选择在<span>
元素之后立即放置的所有<input>
元素
为了使它更先进,基于input
状态来改变兄弟风格,你可以在你的:checked
css中添加:disabled
或input + span
。
input:disabled + span
Means选择在<span>
元素之后立即放置的所有<input disabled>
元素。
有更多的方法来做CSS选择器,但更好地参考W3School。
如果您想使用javascript或jquery来执行DOM,那么您必须更具体,并提供您正在使用但无法工作的代码。
您应该考虑使用:checked
和:disabled
伪选择器及其化合物将样式应用于兄弟元素:
input + .checkmark {}
input:checked + .checkmark {}
input:disabled + .checkmark {}
input:checked:disabled + .checkmark {}
请注意,使用这种方法,您将需要覆盖应用于基本选择器的样式(这完全没问题,但您可能会感到困惑)。要应用不同的样式而不覆盖,可以像这样使用:not()
伪选择器:
input:not(:checked) + .checkmark {}
对于IE8及更少,您可以使用这样的语法:
input[disabled] + .checkmark {}