Javascript 如何禁用具有特定id模式的div块?
我想写一个greasemonkey脚本来禁用某个页面上的div。 在任何给定的页面负载上,我都不知道div在DOM中的位置,但我知道它总是被称为Javascript 如何禁用具有特定id模式的div块?,javascript,html,dom,userscripts,Javascript,Html,Dom,Userscripts,我想写一个greasemonkey脚本来禁用某个页面上的div。 在任何给定的页面负载上,我都不知道div在DOM中的位置,但我知道它总是被称为… 我该如何禁用这个div 我最初的想法是: var myDivs= document.getElementsByTagName('div'); for (i=0; i<myDivs.length; i++) { if (myDivs[i].<get id property somehow> = "alertPanel")
…
我该如何禁用这个div
我最初的想法是:
var myDivs= document.getElementsByTagName('div');
for (i=0; i<myDivs.length; i++)
{
if (myDivs[i].<get id property somehow> = "alertPanel")
myDivs[i].style.visibility = 'hidden';
}
var myDivs=document.getElementsByTagName('div');
对于(i=0;i,在有效的HTML中,只能有具有特定ID的元素。因此:
document.getElementById('alertPanel').style.visiblity = 'hidden';
但是,如果您仍然需要迭代所有div并检查它们的ID,那么这应该可以:
if (myDivs[i].id == "alertPanel") myDivs[i].style.visibility = 'hidden';
如果它具有id
,则可以使用:
如果它存在,您可以删除它(可能是个坏主意)或隐藏它:
if (div) {
div.style.display = "none"; // Hides it
// Or
// div.parentNode.removeChild(div); // Removes it entirely
}
更新:请重新评论另一个答案:
谢谢你的回答。你的状态是否也适用于带有iframe的页面。问题中的div位于iframe中。我尝试过ypur解决方案,但不幸的是,它没有起作用。也许链接到该页面会有所帮助:netsing.betfair.com我要禁用的div是id为:minigamesContainer的div
如果元素位于iframe
中,则必须对iframe
中的文档调用getElementById
,因为iframe
是单独的窗口,并且具有单独的文档。如果知道iframe
的id
,则可以使用document.getElementById
获取de>iframe
实例,然后使用contentDocument
访问其文档,然后使用getElementById
获取“minigamesContainer”元素:
(由于访问iframe内容时可能出现安全错误,try/catch
存在;我不太了解Greasemonkey,不知道它是否适用。我倾向于假设它不适用,但更安全一些……)
如果您不知道iframe
的id
,或者如果它没有id,您可以通过获取它们然后循环来循环所有它们:
var iframes, index, iframe, div;
iframes = document.getElementsByTagName("iframe");
for (index = 0; index < iframes.length; ++index) {
iframe = iframes[index];
try {
div = iframe.contentDocument.getElementById("minigamesContainer");
if (div) {
div.style.display = "none";
break;
}
}
catch (e) {
}
}
var-iframes,index,iframe,div;
iframes=document.getElementsByTagName(“iframe”);
对于(索引=0;索引
参考资料:
可见性:隐藏的元素即使在未显示时也会占用屏幕空间,而具有显示:无的元素则不会。这非常有效-谢谢-但是如果我不只是查找alertPanel
,而是想隐藏alertPanel2
或alertPanel3
?(我正在努力学习javascript的基础知识——我对实验有点紧张。)
var iframe, div;
iframe = document.getElementById("the_iframe_id");
if (iframe) {
try {
div = iframe.contentDocument.getElementById("minigamesContainer");
if (div) {
div.style.display = "none";
}
}
catch (e) {
}
}
var iframes, index, iframe, div;
iframes = document.getElementsByTagName("iframe");
for (index = 0; index < iframes.length; ++index) {
iframe = iframes[index];
try {
div = iframe.contentDocument.getElementById("minigamesContainer");
if (div) {
div.style.display = "none";
break;
}
}
catch (e) {
}
}