Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaScript更改虚拟元素?_Javascript - Fatal编程技术网

如何使用JavaScript更改虚拟元素?

如何使用JavaScript更改虚拟元素?,javascript,Javascript,如何使用JavaScript更改虚拟元素的属性 div#div1::before { filter: blur(4px); } 我想用JavaScript更改上述代码中的模糊效果。如果您想更改标准css类属性,只需使用document.getElementById(id).style.property=new style,它可以在多个文档中找到,例如 按类进行选择时,功能类似 如果您希望在之前直接访问css伪类,可以通过向DOM元素添加style元素,然后操作其值来解决问题。@Rick

如何使用JavaScript更改虚拟元素的属性

div#div1::before {
    filter: blur(4px);
}

我想用JavaScript更改上述代码中的模糊效果。

如果您想更改标准css类属性,只需使用
document.getElementById(id).style.property=new style
,它可以在多个文档中找到,例如

按类进行选择时,功能类似

如果您希望在之前直接访问css伪类,可以通过向
DOM
元素添加
style
元素,然后操作其值来解决问题。@RickHitchcock修复语法的功劳

var cssChange = document.createElement('style');
cssChange.innerHTML= '#div::before {filter: 20px;}';
document.selector.appendChild(cssChange );
另一个更干净的选项是在CSS表中添加一个类:

.some-class:before {
    filter: blur(20px) !important;
}
然后通过JS添加您的类

document.selector.addClass('some-class');

请记住添加多个这样的类!覆盖CSS的重要标记也会变得杂乱无章。

我认为您必须为此使用KnockoutJS


有关KnockoutJS的更多信息:

任何可以在KnockoutJS中完成的操作都可以在JavaScript中完成。
append
本身无法工作。您需要创建
样式
元素,然后将其附加为元素的子元素。示例:谢谢@RickHitchcock,我肯定我在某个地方有一个append的工作示例,但是现在已经晚了,可能是我把语法搞乱了,你的解决方案工作得很好,我编辑了这篇文章,包括了你的建议
append
是一个jQuery方法,但是如果你有一个非jQuery示例使用它,我很想看看。
document.selector.addClass('some-class');