jquery 动态设置css before不生效
时间: 2023-08-04 07:05:07 浏览: 141
在使用 jQuery 设置 CSS `::before` 伪元素样式时,需要使用 `content` 属性来设置要添加的内容,如下所示:
```javascript
$('#element').css('content', '要添加的内容');
```
例如,要在元素 `#element` 的前面添加一个带有文本的圆点,可以使用以下代码:
```javascript
$('#element').css({
'position': 'relative',
'padding-left': '10px'
}).before('<span class="dot"></span>');
$('.dot').css({
'position': 'absolute',
'top': 0,
'left': 0,
'width': '5px',
'height': '5px',
'border-radius': '50%',
'background-color': 'red',
'content': '" "'
});
```
以上代码设置了元素 `#element` 的样式,并在其前面添加了一个带有红色圆点的 `::before` 伪元素。注意,`content` 属性的值必须用双引号包裹起来,并且内容需要用空格隔开。
相关问题
jquery 动态设置css::before不生效
在使用 jQuery 设置 CSS `::before` 伪元素样式时,需要使用 `content` 属性来设置要添加的内容,并且需要使用 `:before` 选择器来选中伪元素,如下所示:
```javascript
$('#element:before').css('content', '要添加的内容');
```
例如,要在元素 `#element` 的前面添加一个带有文本的圆点,可以使用以下代码:
```javascript
$('#element').css({
'position': 'relative',
'padding-left': '10px'
}).before('<span class="dot"></span>');
$('.dot:before').css({
'position': 'absolute',
'top': 0,
'left': 0,
'width': '5px',
'height': '5px',
'border-radius': '50%',
'background-color': 'red',
'content': '" "'
});
```
以上代码设置了元素 `#element` 的样式,并在其前面添加了一个带有红色圆点的 `::before` 伪元素。注意,`content` 属性的值必须用双引号包裹起来,并且内容需要用空格隔开。另外,`::before` 选择器在 jQuery 中需要使用 `:` 表示。
jquery 动态设置before不生效
在使用 jQuery 的 `before()` 方法动态设置元素之前的内容时,有几个常见的原因可能会导致设置不生效:
1. 确保在设置 `before()` 之前已经选择了要添加内容的元素。
2. 确认添加的内容是一个合法的 HTML 字符串或 DOM 元素。
3. 确认添加的内容中不包含其他的 `<script>` 标签,否则可能会引发安全问题。
4. 确认添加的内容中不包含与已有元素的 ID 属性重复的 ID 属性,否则可能会导致 DOM 结构错误。
如果排除了以上可能的问题,仍然无法解决,可以尝试使用 jQuery 的 `html()` 方法直接设置元素的 HTML 内容。例如:
```javascript
$('#element').html('新的内容' + $('#element').html());
```
以上代码会在 `#element` 元素的开头添加新的内容。
阅读全文