如何在javascript中对以#开头的id生成onclick事件

如何在javascript中对以#开头的id生成onclick事件,javascript,html,mailchimp,Javascript,Html,Mailchimp,嘿,伙计们,我想用一个onclick事件触发mailchimp模式 有两件事,我发现了这一点,并能够挽救以下代码 document.getElementById("open-popup").onclick = function() { showMailingPopUp(); }; function showMailingPopUp() { document.cookie = "MCEvilPopu

嘿,伙计们,我想用一个onclick事件触发mailchimp模式

有两件事,我发现了这一点,并能够挽救以下代码

        document.getElementById("open-popup").onclick = function() {
            showMailingPopUp();

        };

        function showMailingPopUp() {
            document.cookie = "MCEvilPopupClosed=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
            require(["mojo/signup-forms/Loader"], function(L) { 
                L.start({ 
                    "baseUrl":"mc.us8.list-manage.com",
                    "uuid":"a56ce2128001bdcb7974e9ea2",
                    "lid":"1d4c16bd94"
                }) 
            })
        }; 
这看起来很好,但我得到以下控制台错误

Uncaught TypeError: Cannot set property 'onclick' of null
因此,我用
window.onload=function(){}

现在有以下几点

    window.onload = function() {
        document.getElementById("open-popup").onclick = function() {
            showMailingPopUp();

        };

        function showMailingPopUp() {
            document.cookie = "MCEvilPopupClosed=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
            require(["mojo/signup-forms/Loader"], function(L) { 
                L.start({ 
                    "baseUrl":"mc.us8.list-manage.com",
                    "uuid":"a56ce2128001bdcb7974e9ea2",
                    "lid":"1d4c16bd94"
                }) 
            })
        };    
    }
但我还是犯了同样的错误。这是我的html标记

<section class="hero text-center">
    <div class="container">
        <h1><b>Start Getting Paid for Your Homework</b></h1>
        <h2><b>MAKE REAL USE OF YOUR HOMEWORK</b></h2>
        <a class="btn btn-default" href="#" role="button" id="#open-popup-">Join Now</a>
    </div>
    <svg xmlns="http://www.w3.org/2000/svg" version="1.1" class="separator" viewBox="0 0 100 100" preserveAspectRatio="none">
                    <path d="M0 100 L100 0 L100 100 Z" fill="#fff"></path>
    </svg>
</section>

开始为你的家庭作业买单
充分利用你的家庭作业

我精确地说,我需要单击的按钮有一个以#开头的id,尝试从HTML元素中删除标签

<a class="btn btn-default" href="#" role="button" id="#open-popup-">Join Now</a>
错误明确说明:无法将属性“onclick”设置为null 因此,它不会在字符串“openpopup-”之前找到HTML元素,
<a class="btn btn-default" href="#" role="button" id="#open-popup-">Join Now</a>
导致错误,因为这是语言定义的符号, 用于使用jquery从DOM捕获任何id

你必须移除它(我不知道你是否可以,但必须!)

另一种更便宜的方法是检查是否有任何id包含名称的结束出现:

**

编辑:由于您的帖子已被编辑,删除jquery用法

**

在javascript中

document.getElementById("#open-popup-").addEventListener('click',showMailingPopUp());
或者使用jquery

$("[id~='open-popup-']").on("click",  function()
{
    showMailingPopUp();
});

删除#of you“a”标记,它必须是id=“open popup”@MTroy业余移动,但仍然得到
未捕获的类型错误:无法设置null的属性“onclick”
你在帖子关键字上提到了“jquery”标记,你还在使用它吗?我在你的代码中没有看到任何jquery,但是仍然得到
未捕获的TypeError:cannotsetproperty onclick of null
我如何用类名而不是id来做这些我刚刚试过
getelementsbyclassname
,它在你的标记中不起作用,你提到jquery,我只是用你说的用法来编写。你在使用jquery库吗?对于我的表单验证,但那是另一段代码lol,我必须添加tagg on Confect,从概览查看我的代码OK,编辑你的标记,提交,请避免使用回复帖子添加解释。。。只需编辑你的帖子就足够了。我怎么用类而不是id来做这件事呢??