Javascript 如何禁用具有特定id模式的div块?

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")

我想写一个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")
     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) {
    }
}