我正在做一个扩展。我的代码中有以下代码content.js
:
var elems2 = $("div[id^='ad-'],div[id*=' ad-']");
console.log(elems2.length);
$(window).on('load', function() {
for (var i = 0, max = elems2.length; i < max; i++) {
elems2.hidden = true;
};
});
$(document).ready(function() {
for (var i = 0, max = elems2.length; i < max; i++) {
elems2.hidden = true;
};
});
for (var i = 0, max = elems2.length; i < max; i++) {
elems2.hidden = true;
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div id="adContent-border" style="border-color: rgb(229, 229, 229); border-radius: 0px; border-style: solid; border-width: 1px; position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; z-index: 500; box-sizing: border-box; pointer-events: none;"></div>
我的manifest.json
:
{
"manifest_version":2,
"name":"Test",
"description":"A Basic program",
"version":"0.1",
"background":{
"scripts":[
]
},
"content_scripts":[
{
"matches":[
"<all_urls>"
],
"js":[
"jquery-3.2.1.min.js",
"content.js"
]
}
],
"browser_action":{
"default_title":"Test"
}
}
但是当它运行时,它什么也不做。放代码时发现问题alert(elems2.length)
,返回0,因此JQuery没有检测到。有谁知道如何解决这一问题?任何帮助,将不胜感激。
如果您使用属性“包含”选择器(https://api.jquery.com/attribute-contains-selector/),则无需添加“以”选择器。
即使用: $("div[id*='ad']")
另外,我不确定您是如何加载 jquery 的,但请确保在 'load' 事件中包含您对 var 的定义。
IE
$(window).load(function() {
var elem2 = $("div[id*='ad']");
...
});
$(window).load(function() {
var elem2 = $("div[id*='ad']");
$.each(elem2, function(idx, elem) {
console.log(idx + "-" + $(elem).text());
$(elem).addClass('with-ad');
});
});
.with-ad {
border: 1px solid green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="my-answer">
<div id="advert">Starts with 'ad'</div>
<div id="edvert">Does not starts with 'ad'</div>
<div id="madonna">Contains 'ad'</div>
<div id="maronna">Does not contain 'ad'</div>
<div id="rad">ends in 'ad'</div>
<div id="raz">does not end in 'ad'</div>
</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句