将对象传递给jquery函数

时间:2017-02-19 21:39:11

标签: javascript jquery

如果有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;
&#13;
&#13;

这里的回复数组我需要根据函数中动态给出的值为每个data添加自定义消息。如何在jquery中实现它?我对on()知之甚少属性可以使用但不清楚。

更新: 我需要一个对象来存储revertStdin方法中的值。

2 个答案:

答案 0 :(得分:2)

如果您可以使用data属性,则只需将您的消息存储在data属性(例如data-message)上,然后使用jQueryElement.attr('data-message')jQueryElemenet.data('message')获取该消息像这样:

&#13;
&#13;
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;
&#13;
&#13;

答案 1 :(得分:0)

注意,for循环,.eq()并创建一个调用.join(", ")的数组是不必要的。

$("p")选择<p>中的所有document元素,而不会将过滤器应用于选择器。

您可以在不创建数组和.join()的情况下连接字符串片段。

调用this.tagName"P"作为.index()的参数,将结果推送到click处理程序之外定义的数组。

&#13;
&#13;
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;
&#13;
&#13;