在另一个函数中传递clicked元素的属性

时间:2017-04-25 13:53:44

标签: javascript jquery

大家好我试着弄清楚如何传递我在不同功能中点击的元素属性

具体而言,我有十几个具有相同className = online的元素 但是,每个元素都有一个唯一的id,我动态地为它们分配了它们。

我使用$(document).on,因为我想听document点击,因为className=online的元素也是动态创建的。

$(document).on("click", ".online", isInPrivateChat);

我如何在不同的功能中使用例如

function TakeTheidfTheElement(){
  //take the id of the element i clicked
}

我知道我应该使用jquery方法.attr('id')但不能让它真正起作用。

由于

4 个答案:

答案 0 :(得分:2)

<强> Working fiddle

您可以使用new从回调函数id获取isInPrivateChat,如:

this.id

希望这有帮助。

function isInPrivateChat(){
   alert( this.id );
}
$(document).on("click", ".online", isInPrivateChat);

function isInPrivateChat(){
   console.log( this.id );
}

答案 1 :(得分:0)

通过以下方式携带身份证件:

$(document).on("click", ".online", function() {
    isInPrivateChat($(this).attr('id')); /* <-- get id and pass it in */
});

然后

function TakeTheidfTheElement(idPassed){
  // do something with idPassed
}

为了记录,Zacaria的答案是更好的选择 - 显示这是你如何使用.attr('id')

答案 2 :(得分:0)

您可以将整个元素传递给子函数,在那里您可以使用JQuery或直接javascript来获取元素的属性。

$(document).on("click",".online",function() { 
    getMyId(this);    
});

function getMyId(element) {
    alert(element.id);
}

如果你只是想将id传递给sub函数,你可以这样做:

$(document).on("click",".online",function() { 
    getMyId(this.id);    
});

function getMyId(elementID) {
    alert(elementID);
}

这是fiddle的工作

答案 3 :(得分:0)

检查以下代码段

&#13;
&#13;
$(document).on("click", ".online", isInPrivateChat);

function isInPrivateChat(event) {
  anotherFunctin(event.currentTarget.id);
}

function anotherFunctin(id){
  console.log(id);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="online" id="id">
click me
</div>
&#13;
&#13;
&#13;