jQuery .css() 不起作用
jQuery .css() doesn't work
我正在尝试在我的网站上使用 jQuery 更改内联 CSS。到目前为止,我已经尝试了以下代码:
<script type="text/javascript">
jQuery(".shareaholic-share-button-container").css("background", "rgba(0,0,0,0)");
jQuery(".share-button-counter").css("background", "rgba(0,0,0,0)");
</script>
我也试过:
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery(init);
function init() {
jQuery(".shareaholic-share-button-container").css("background", "rgba(0,0,0,0)");
jQuery(".share-button-counter").css("background", "rgba(0,0,0,0)");
}
});
</script>
和
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery(".shareaholic-share-button-container").css("background", "rgba(0,0,0,0)");
jQuery(".share-button-counter").css("background", "rgba(0,0,0,0)");
});
</script>
但是,没有任何效果。有趣的是,当 Cloudflare 的开发模式打开时代码可以工作,但是当它关闭时代码不起作用(即使在清除 Cloudflare 缓存并禁用缩小/火箭加载器之后)。
感谢所有帮助!
编辑:这段代码的重点是替换 !important 内联 CSS 并将背景更改为完全透明,即零不透明度。所以 rgba(0,0,0,0) 是正确的和预期的。
代码的目的是删除 !important 'background' 内联样式,参见:
<div class="shareaholic-share-button-container" ng-click="sb.click()" style="color:#000000 !important;
background:#fafafa !important; // the purpose is to remove this line
opacity: 1.00 !important;">
<span class="share-button-counter ng-binding" style="color:#000000 !important;
background:#fafafa !important; // and this line
opacity: 1.00 !important;">0</span>
<div class="share-button-sizing" ng-style="config.customColorsEnabled && config.appName === 'floated_share_buttons' ? config.customColors : {}" style="color: rgb(0, 0, 0); opacity: 1; background: rgb(250, 250, 250);">
<i class="shareaholic-service-icon service-facebook" ng-style="config.customColorsEnabled ? config.customColors : {}" style="color: rgb(0, 0, 0); opacity: 1; background: rgb(250, 250, 250);"></i>
<span class="share-button-verb ng-binding" style="color:#000000 !important">
<b class="ng-binding">Share</b>
</span>
</div>
</div>
您设置了背景色但没有设置,因为您设置了不透明度 0(零)。
尝试例如50% 不透明度
jQuery(".shareaholic-share-button-container").css("background", "rgba(0,0,0,50)"); // 50% opacity
然后自定义不透明度。 0 是零不透明度。透明度是 >0 且 <100 的值。选择透明度值。
如果您需要 100% 透明度,jquery 提供
$(".shareaholic-share-button-container").css('background-color','transparent');
要覆盖 !important css 检查此 link:
How to override css containing '!important' using jquery?
您正在 DOM 完全加载之前调用该函数。
所以jQuery(".shareaholic-share-button-container")
returns空数组。 (因为当你调用这段代码时,那个元素甚至都没有生成)
如果 .shareaholic-share-button-container
是直接从 html 文件创建的,那么将您的 javascript 放在页面底部。
如果.shareaholic-share-button-container
是动态创建的,完全渲染后调用javascript。
例如,在您的情况下,您可以使用 window 就绪事件回调。
jQuery(window).ready(function(){
jQuery(".shareaholic-share-button-container").css("background-color", "red");});
编辑: 好的,你的问题是2,但是它是异步创建的,所以你不知道它创建的确切时间,甚至你也不能在创建后立即注入源代码那。
一种解决方案是观察每个 DOM 元素创建事件。
jQuery('body').bind("DOMSubtreeModified", function(e) {
var $tmp = jQuery(e.target).find(".shareaholic-share-button-container");
if($tmp.length){
$tmp.css("background-color", "rgba(0,0,0,0)");
}
});
注意 此解决方案不能保证在跨浏览器环境下工作。并可能导致性能问题
试试这个:
如果 rgba 在 jQuery 中不起作用,则可以通过以两种不同的方式编写代码来给出 background-color
属性 和 opacity
。
此外,!important
不适用于 jQuery,仅适用于 css
<script type="text/javascript">
$(document).ready(function(){
$(".shareaholic-share-button-container").css("background-color", "#000");
$(".shareaholic-share-button-container").css("opacity", "0.5");
});
</script>
我正在尝试在我的网站上使用 jQuery 更改内联 CSS。到目前为止,我已经尝试了以下代码:
<script type="text/javascript">
jQuery(".shareaholic-share-button-container").css("background", "rgba(0,0,0,0)");
jQuery(".share-button-counter").css("background", "rgba(0,0,0,0)");
</script>
我也试过:
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery(init);
function init() {
jQuery(".shareaholic-share-button-container").css("background", "rgba(0,0,0,0)");
jQuery(".share-button-counter").css("background", "rgba(0,0,0,0)");
}
});
</script>
和
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery(".shareaholic-share-button-container").css("background", "rgba(0,0,0,0)");
jQuery(".share-button-counter").css("background", "rgba(0,0,0,0)");
});
</script>
但是,没有任何效果。有趣的是,当 Cloudflare 的开发模式打开时代码可以工作,但是当它关闭时代码不起作用(即使在清除 Cloudflare 缓存并禁用缩小/火箭加载器之后)。
感谢所有帮助!
编辑:这段代码的重点是替换 !important 内联 CSS 并将背景更改为完全透明,即零不透明度。所以 rgba(0,0,0,0) 是正确的和预期的。
代码的目的是删除 !important 'background' 内联样式,参见:
<div class="shareaholic-share-button-container" ng-click="sb.click()" style="color:#000000 !important;
background:#fafafa !important; // the purpose is to remove this line
opacity: 1.00 !important;">
<span class="share-button-counter ng-binding" style="color:#000000 !important;
background:#fafafa !important; // and this line
opacity: 1.00 !important;">0</span>
<div class="share-button-sizing" ng-style="config.customColorsEnabled && config.appName === 'floated_share_buttons' ? config.customColors : {}" style="color: rgb(0, 0, 0); opacity: 1; background: rgb(250, 250, 250);">
<i class="shareaholic-service-icon service-facebook" ng-style="config.customColorsEnabled ? config.customColors : {}" style="color: rgb(0, 0, 0); opacity: 1; background: rgb(250, 250, 250);"></i>
<span class="share-button-verb ng-binding" style="color:#000000 !important">
<b class="ng-binding">Share</b>
</span>
</div>
</div>
您设置了背景色但没有设置,因为您设置了不透明度 0(零)。 尝试例如50% 不透明度
jQuery(".shareaholic-share-button-container").css("background", "rgba(0,0,0,50)"); // 50% opacity
然后自定义不透明度。 0 是零不透明度。透明度是 >0 且 <100 的值。选择透明度值。
如果您需要 100% 透明度,jquery 提供
$(".shareaholic-share-button-container").css('background-color','transparent');
要覆盖 !important css 检查此 link: How to override css containing '!important' using jquery?
您正在 DOM 完全加载之前调用该函数。
所以jQuery(".shareaholic-share-button-container")
returns空数组。 (因为当你调用这段代码时,那个元素甚至都没有生成)
如果
.shareaholic-share-button-container
是直接从 html 文件创建的,那么将您的 javascript 放在页面底部。如果
.shareaholic-share-button-container
是动态创建的,完全渲染后调用javascript。
例如,在您的情况下,您可以使用 window 就绪事件回调。jQuery(window).ready(function(){ jQuery(".shareaholic-share-button-container").css("background-color", "red");});
编辑: 好的,你的问题是2,但是它是异步创建的,所以你不知道它创建的确切时间,甚至你也不能在创建后立即注入源代码那。
一种解决方案是观察每个 DOM 元素创建事件。
jQuery('body').bind("DOMSubtreeModified", function(e) {
var $tmp = jQuery(e.target).find(".shareaholic-share-button-container");
if($tmp.length){
$tmp.css("background-color", "rgba(0,0,0,0)");
}
});
注意 此解决方案不能保证在跨浏览器环境下工作。并可能导致性能问题
试试这个:
如果 rgba 在 jQuery 中不起作用,则可以通过以两种不同的方式编写代码来给出 background-color
属性 和 opacity
。
此外,!important
不适用于 jQuery,仅适用于 css
<script type="text/javascript">
$(document).ready(function(){
$(".shareaholic-share-button-container").css("background-color", "#000");
$(".shareaholic-share-button-container").css("opacity", "0.5");
});
</script>