就我而言,我想洗掉 (::before) 的內容或將其隱藏在 jquery/javacript 中
有人可以幫忙嗎?
我試過這個,但它不起作用
$(".element").attr('data-before','');
uj5u.com熱心網友回復:
您不能直接::before使用 jQuery 或行內樣式定位,只能使用 CSS。
您可以使用 CSS 規則向元素添加一個類,該規則::before在具有該類時隱藏其內容:
.element.hide-before::before {
display: none;
}
$(".element").addClass("hide-before");
現場示例:
顯示代碼片段
setInterval(() => {
$(".element").toggleClass("hide-before");
}, 1000);
.element::before {
content: "::before content";
border: 1px solid grey;
}
.element.hide-before::before {
display: none;
}
<div class="element"> inline content</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
如果您希望能夠通過 JavaScript 代碼控制內容,您可以使內容來自一個屬性(如您的data-before):
.element::before {
content: attr(data-before);
}
然后您可以通過將其設定為空白來“洗掉”它:
$(".element").attr("data-before", "");
但您也可以通過提供非空字串將其更改為其他內容。
現場示例:
顯示代碼片段
let counter = 0;
setInterval(() => {
counter;
$(".element").attr("data-before", counter === 4 ? "" : `before ${counter}`);
if (counter === 4) {
counter = -1;
}
}, 1000);
.element::before {
content: attr(data-before);
border: 1px solid grey;
}
<div class="element" data-before="before 0"> inline</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/374352.html
標籤:javascript 查询
