获取包含动态按钮jQuery的对象

时间:2017-03-08 18:09:25

标签: javascript jquery pug

我有一些动态创建的对象来自玉模板,其中包含按钮。我希望能够在单击其中的按钮时获取该对象。这是我目前拥有的

var getSelf = function() {
   var clickedBtnID = $(this).parent(); 
   alert('you clicked on button #' + clickedBtnID.name);
}

和jQuery

import threading
def printit():
    threading.Timer(15.0, printit).start()
    print("Scraper restartet.")
    exec(open("./twython_36.py").read())


printit()

我知道我的jQuery是不正确的,因为它只是打印" undefined"但我怎么打印这个名字?

感谢。

2 个答案:

答案 0 :(得分:1)

截至目前,this并未引用button元素,它引用window个对象。

您可以将this引用传递给函数

button.btn.btn-primary(type='button',id="share",name="share",onclick='getSelf(this)')

修改您的函数以接受引用,稍后可以使用该引用。

var getSelf = function(elem) {
    var clickedBtnID = $(elem).parent(); 
    alert('you clicked on button #' + clickedBtnID.name);
}

但是我建议你使用不显眼的事件处理程序而不是丑陋的内联点击处理程序(摆脱它)。

$(function(){
    $("#share").on('click', function(){
        var clickedBtnID = $(this).parent(); 
        alert('you clicked on button #' + clickedBtnID.name);
    });
}) 

答案 1 :(得分:0)

您可以使用event.target属性引用触发事件的元素。事件信息作为第一个参数传递给事件处理程序。

完整的工作代码。

$('div').click(function(event){
 console.log(event.target.id)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="div1">div1</div>
<div id="div2">div2</div>
<div id="div3">div3</div>
<div id="div4">div4</div>
<div id="div5">div5</div>