Javascript 不使用onclick的jQuery get元素

Javascript 不使用onclick的jQuery get元素,javascript,jquery,html,ajax,onclick,Javascript,Jquery,Html,Ajax,Onclick,我试图在不使用onclick的情况下获取HTML输入的元素id(或数据属性)。我的代码: <button class="button primary" type="button" onclick="add_poll_answers(30)">Submit</button><br /> 我需要的是删除onclick并将其添加到单独的jQuery文件中的某种方法。我不能只使用以下内容,因为每页有多个轮询,ID会冲突。我真正需要的是一种方法,让您单击下面这样的内容

我试图在不使用onclick的情况下获取HTML输入的元素id(或数据属性)。我的代码:

<button class="button primary" type="button" onclick="add_poll_answers(30)">Submit</button><br />
我需要的是删除onclick并将其添加到单独的jQuery文件中的某种方法。我不能只使用以下内容,因为每页有多个轮询,ID会冲突。我真正需要的是一种方法,让您单击下面这样的内容,然后jQuery可以动态地获取轮询id的元素数据属性。换句话说,我希望javascript获取id,而不需要使用onclick传递它

有人知道这是如何实现的吗

$(document).ready(function(){
    $("#edit_poll").click(function()
    {
       edit_poll();
    });
(id编辑调查不存在,这只是理论上的)

我找不到任何与我自己的问题相关的东西,对此我感到非常困惑。我刚开始对AJAX相当陌生,但这确实让我感到困惑。我知道有办法,但我找不到

$(document).ready(function(){
    $("#edit_poll").click(function()
    {
       var id=$(this).data("pollid");
       add_poll_answers(id);
    });
});

如果元素具有数据pollid属性,请创建保存此信息的按钮

<button class="button primary addAnswer" type="button" data-pollid="30">Submit</button>

您需要某种方法来确定要处理的按钮,然后您可以:

  • 钩住
    直接点击

    $("button").on("click", function() {
        // Use `this` here to access the element, e.g.
        // its ID is `this.id`, or you can access a
        // data attribute via `$(this).attr("data-foo")`
        // or this.getAttribute("data-foo")
    });
    
  • 钩住容器元素上的
    单击
    ,并告诉jQuery仅在单击其中一个按钮时通知您,这看起来非常类似:

    $("selector for the container").on("click", "button", function() {
        // Use `this` here to access the element, e.g.
        // its ID is `this.id`, or you can access a
        // data attribute via `$(this).attr("data-foo")`
        // or this.getAttribute("data-foo")
    });
    
    这被称为事件委派,在动态添加/删除按钮的情况下非常方便

  • 在上面,我刚刚使用了
    “button”
    作为按钮的选择器,但是您当然需要更具体的东西-例如,您可以向有问题的按钮添加一个类并使用
    ”。而不是使用类“

    #1的示例(直接处理点击):

    $(.poll”)。在(“单击”,函数()上{
    $(“”)
    .html(“您单击了”+$(此).attr(“数据值”))
    .附录(文件正文);
    });
    
    
    选择1
    选择2
    选择3
    
    如果需要更多的元素来应用相同的元素,只需使用class属性来标识元素:

    <button class="buttonClick button primary" type="button">Submit</button>
    

    这就是我如何欺骗厄运和

    这种方法的问题是在同一页面上有多个按钮用于编辑、添加和删除。抱歉,如果该部分不清楚,那么您可以使用css类标记一种类型的按钮(就像我在示例中所做的那样-我向该按钮添加了
    addAnswer
    类),然后只对这些按钮应用某些功能。谢谢!这就是它,它帮助我解决了它。
    $("selector for the container").on("click", "button", function() {
        // Use `this` here to access the element, e.g.
        // its ID is `this.id`, or you can access a
        // data attribute via `$(this).attr("data-foo")`
        // or this.getAttribute("data-foo")
    });
    
    <button class="buttonClick button primary" type="button">Submit</button>
    
    $(document).ready(function(){
        $(".buttonClick").click(function(){
           console.log($(this).attr('id')); //to get the id, class or whatever
        });
    });
    
    $(document).ready(function(){  
    var a = document.querySelector(".theClasseYouWantToListen").textContent;
    console.log(a)
        });