Javascript关于通过id隐藏某些div的问题,id是一个不断变化的随机数

Javascript关于通过id隐藏某些div的问题,id是一个不断变化的随机数,javascript,html,random,Javascript,Html,Random,有人能帮我用javascript隐藏与特定随机数匹配的div吗?每次我加载此页面时,它都有两个div,就像每次加载页面时数字都会更改,但长度保持在9-10之间。我如何获取页面上的两个div并删除/隐藏它们 让我澄清一下,本页上的两个div的长度都是9到10之间的随机数 其中一个div如下所示: <div id='843401712' style='position:relative;z-index: 1000;left: 75px;top: -340px; padding:0px; mar

有人能帮我用javascript隐藏与特定随机数匹配的div吗?每次我加载此页面时,它都有两个div,就像每次加载页面时数字都会更改,但长度保持在9-10之间。我如何获取页面上的两个div并删除/隐藏它们

让我澄清一下,本页上的两个div的长度都是9到10之间的随机数

其中一个div如下所示:

<div id='843401712' style='position:relative;z-index: 1000;left: 75px;top: -340px; padding:0px; margin: 0px;width: 310px; height:280px; text-align: center; border:3px gray solid'></div>
我无法控制生成的html,我希望在页面旁边运行javascript作为greasemonkey扩展来隐藏这两个div


感谢你们提供的帮助,我是javascript新手,所以这是一个很大的帮助。

用于获取所有div元素。然后,使用[0-9]{9,10}这样的正则表达式检查它们的id,如果id匹配,则删除/隐藏它们。

您的问题有两个问题

<div id='a1945498985' class="hideMe"></div>
<div id='a2945498986' class="hideMe"></div>
首先,你建议你有两个ID相同的div,这是非法的

其次,你的身份证都是数字,这也是非法的

为了简洁起见,这里使用jquery,并假设您从动态生成的页面(如PHP)中获取随机数据,这是一个实现您所需的示例:

<script type="text/javascript">
    var pRand = '<?php echo $pRand; ?>';
    document.ready(function(){
        $('.el-'+pRand).hide();
    });
</script>
...
<div class="el-<?php echo $pRand;?>"></div>
<div class="el-<?php echo $pRand;?>"></div>

使用jQuery筛选器并提供一个函数,该函数对您的id进行正则表达式匹配:

请看这里:

就你而言

例如:

$('div').filter(function() {
    return this.id.match('\\d{9,10}');
} ).hide();

我建议您使用jquery,它有一些选择器过滤器,可以帮助您选择正确的div


正如其他人所说,您应该首先确保您具有合法的ID值。它们不能以数字开头,并且页面中只能有一个具有给定ID的对象

如果您可以控制生成的HTML,那么最好在所有要隐藏的div上放置一个公共类名。然后,您可以很容易地找到它们,或者添加一个将隐藏它们的样式规则

<div id='a1945498985' class="hideMe"></div>
<div id='a2945498986' class="hideMe"></div>

这里有一些例子——我没有使用jQuery,因为您没有建议使用它。它对这类东西非常有用,但如果需要,也可以不用它来解决问题

使用的方法有两种,一种依赖于父容器,另一种使用某些浏览器提供的新getElementsByClassName支持。如果需要支持旧浏览器,可以使用自己的getElementsByClassName

理想情况下,您不会将随机id应用于元素-为元素提供随机id似乎没有什么意义。如果您在服务器端设置随机id,您还可以将id提供给JavaScript,以便它可以使用getElementById调用来针对元素,这将是最有效的


而且,我同意关于数字id无效的说法-您应该在id的开头至少放一个字母字符。

它是否有一个可以选择的一致的父元素?对不起,我忘了提到两个div的长度都在9到10之间。我想您可以用非法替换无效的HTML。可悲的是,没有人因为垃圾HTML而被捕。@Sohnee-虽然我明白你的意思,但我认为我们已经远远超出了试图从计算词典中去掉“合法/非法”这个词的范围我想你可能在找getElementsByTagName。修正了我的答案。谢谢。非常感谢这使我了解并解决了我的问题。我的问题回答:我正在寻找从页面中筛选出的元素,我不控制页面的html。@Cloud-你能共享DOM吗。如果我们能看到它的结构,我们可能会给你一个更好的解决方案。