传递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>
的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>
P.S:你不一定需要传递'event'。在这个具体情况下导致无用。 2.因为即使没有传递参数,也可以使用'event'。 –
@ 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>
通过使用'this.id'你只是限制自己。只需传递'this',而不是在函数中使用你喜欢/需要的任何属性。 –
谢谢兄弟!好的 –
好吧,据我所见,你正试图做一个像按钮。 为此,我建议不要将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属性使用按钮的值。您需要为每个按钮设置不同的名称。
**它的'2017 **。你最终可以在你的'form'后备中推荐一些AJAX作为超集,而不是*简单地*指向某个'like.php'页面的用户... –
抱歉,我是AJAX的新手。没有关于它的想法。我可以告诉你的PHP脚本 – Ashish
文档中的ID应该是唯一的。 – lilezek
@lilezek正如OP提到的,ID来自DB,所以我猜它们是唯一的。我认为,在代码中,这只是为了说明。 – Junaid
1)'id'属性必须是唯一的,尽管我假设它们来自你的代码,因为它们来自数据库。 2)将点击处理程序放在'button'上。将click处理程序放在应该单击的元素的父级上是没有意义的。 3)http://api.jquery.com/click –