如果有jQuery代码
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p> 0 </p>
<p> 1 </p>
<p> 2 </p>
<div id="info"></div>
&#13;
p
&#13;
这里的回复数组我需要根据函数中动态给出的值为每个data
添加自定义消息。如何在jquery中实现它?我对on()
知之甚少属性可以使用但不清楚。
更新:
我需要一个对象来存储revertStdin
方法中的值。
答案 0 :(得分:2)
如果您可以使用data
属性,则只需将您的消息存储在data
属性(例如data-message
)上,然后使用jQueryElement.attr('data-message')
或jQueryElemenet.data('message')
获取该消息像这样:
var info = $("#info");
for (var i = 0; i < 3; i++) {
$("p").eq(i).on("click", function(event) {
var message = $(this).data("message"); // get the data-message of this p
info.append(message + "<br>"); // use it ...
});
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p data-message="hey this is the first"> 0 </p>
<p data-message="and this is 2"> 1 </p>
<p data-message="this will be the THIRD"> 2 </p>
<div id="info"></div>
&#13;
答案 1 :(得分:0)
注意,for
循环,.eq()
并创建一个调用.join(", ")
的数组是不必要的。
$("p")
选择<p>
中的所有document
元素,而不会将过滤器应用于选择器。
您可以在不创建数组和.join()
的情况下连接字符串片段。
调用this.tagName
:"P"
作为.index()
的参数,将结果推送到click
处理程序之外定义的数组。
var info = $("#info");
var arr = [];
var p = $("p").on("click", function(event) {
var index = $(this).index(this.tagName);
var reply = " message=message for first p"
+ ", index = "
+ index
arr.push(index);
info.append(reply + "<br>");
console.log(arr);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p> 0 </p>
<p> 1 </p>
<p> 2 </p>
<div id="info"></div>
&#13;