传递ID作为参数

问题描述:

我有一个包含多个div的页面,每个div都有一个来自数据库的ID,每个div都有一个像按钮,我想要做的是当我点击像按钮ID传递在我的函数中的参数,这里是我迄今为止尝试:传递ID作为参数

function addLike
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="myID" onClick="addLike()"> 
 
<button type="button">Like</button> 
 
</div> 
 

 
<div id="myID" onClick="addLike()"> 
 
<button type="button">Like</button> 
 
</div> 
 

 
<div id="myID" onClick="addLike()"> 
 
<button type="button">Like</button> 
 
</div> 
 

 
<div id="myID" onClick="addLike()"> 
 
<button type="button">Like</button> 
 
</div> 
 

 
<div id="myID" onClick="addLike()"> 
 
<button type="button">Like</button> 
 
</div> 
 

 
<div id="myID" onClick="addLike()"> 
 
<button type="button">Like</button> 
 
</div>

+4

文档中的ID应该是唯一的。 – lilezek

+0

@lilezek正如OP提到的,ID来自DB,所以我猜它们是唯一的。我认为,在代码中,这只是为了说明。 – Junaid

+0

1)'id'属性必须是唯一的,尽管我假设它们来自你的代码,因为它们来自数据库。 2)将点击处理程序放在'button'上。将click处理程序放在应该单击的元素的父级上是没有意义的。 3)http://api.jquery.com/click –

的ID必须是唯一的。

每当你定义一个内联的单击事件处理您可以考虑通过以下两个变量:

  • :当前元素
  • 事件:事件对象

function addLike(ele, e) { 
 
    console.log('ID: ' + ele.id); 
 
}
<div id="myID1" onclick="addLike(this, event)"> 
 
    <button type="button">Like</button> 
 
</div> 
 

 
<div id="myID2" onclick="addLike(this, event)"> 
 
    <button type="button">Like</button> 
 
</div> 
 

 
<div id="myID3" onclick="addLike(this, event)"> 
 
    <button type="button">Like</button> 
 
</div> 
 

 
<div id="myID4" onclick="addLike(this, event)"> 
 
    <button type="button">Like</button> 
 
</div> 
 

 
<div id="myID5" onclick="addLike(this, event)"> 
 
    <button type="button">Like</button> 
 
</div> 
 

 
<div id="myID6" onclick="addLike(this, event)"> 
 
    <button type="button">Like</button> 
 
</div>

+0

P.S:你不一定需要传递'event'。在这个具体情况下导致无用。 2.因为即使没有传递参数,也可以使用'event'。 –

+1

@ RokoC.Buljan我知道。最好的方法是使用addEventListener或jquery。这只是一个答案。最好的方法是尽量避免内联代码。而且,因为我不知道用法.....我说:你可能而不是你需要。我赞同你。相信我。非常感谢您的提示。 – gaetanoM

我建议你从你的div删除的onClick:

<div id="myID"> 

,并在每个按钮的onclick插入:

所有的
<button onclick="addLike(this.parent.id)"> 

首先,你只能有一个ID在一个页面。所以我会首先建议你使用类而不是ID。现在,如果您更愿意使用ID,那么每个ID都应该是唯一的。你应该有

<div id="id1" onClick="addLike(this.id)"></div> 
<div id="id2" onClick="addLike(this.id)"></div> 
+0

通过使用'this.id'你只是限制自己。只需传递'this',而不是在函数中使用你喜欢/需要的任何属性。 –

+0

谢谢兄弟!好的 –

好吧,据我所见,你正试图做一个像按钮。 为此,我建议不要将ID作为<button>作为其值。 而对于按钮操作,您必须创建一个表单,其操作将在其他PHP或任何其他服务器端语言上进行。所以对于你的问题,这里是解决方案。

<form action="like.php" method="POST"> 
<div id="myid1"> 
    <button value="myid1" name="button1">LIKE</button> 
</div> 
<div id="myid2"> 
    <button value="myid2" name="button2">LIKE</button> 
</div> 
</form> 

现在,当您想要将值传递给函数时,您可以通过其各自的name属性使用按钮的值。您需要为每个按钮设置不同的名称。

+0

**它的'2017 **。你最终可以在你的'form'后备中推荐一些AJAX作为超集,而不是*简单地*指向某个'like.php'页面的用户... –

+0

抱歉,我是AJAX的新手。没有关于它的想法。我可以告诉你的PHP脚本 – Ashish