无法访问Jquery对象内部数据

时间:2014-08-07 08:21:39

标签: jquery wordpress-plugin

您好我在WordPress中有一个插件,在评论区显示个人评分。我试图在div中使用数据字段为每个用户获得投票。这是结构。

<div id="r1" class="widget_rate"
      data-post-id="<?php echo $post_id ?>"
      data-user-id="<?php echo $user_id;  ?>"
      data-nonce="<?php echo $nonce ?>"
      data-total="***<?php echo $data;*** ?>"
     >

     <div data-rating="1" class="star_1 stars_ratings"><b>1</b></div>
     <div data-rating="2" class="star_2 stars_ratings"><b>2</b></div>
     <div data-rating="3" class="star_3 stars_ratings"><b>3</b></div>
     <div data-rating="4" class="star_4 stars_ratings"><b>4</b></div>
     <div data-rating="5" class="star_5 stars_ratings"><b>5</b></div>

 </div> 

data-total就是我追求的目标。但是当我根据第一个值为所有用户加载页面jQuery设置评级时。我认为jQuery可能只调用一次但是当我在浏览器中检查时,我发现了所有&#34; widget_rate&#34; DIV。这是,

   [div#r1.widget_rate, div#r1.widget_rate, div#r1.widget_rate, prevObject: jQuery.fn.init[1], context: document, selector: ".widget_rate", jquery: "1.11.1", constructor: function…]
0: div#r1.widget_rate
1: div#r1.widget_rate
2: div#r1.widget_rate
context: document
length: 3
prevObject: jQuery.fn.init[1]
selector: ".widget_rate"
__proto__: Object[0]

我有三条评论,我有三个实例,所以我尝试通过分配

来访问它们
var temp = $(".widget_rate")[0];

我可以看到outerHTML中的值,但我无法访问它。它返回未定义的函数错误。

var temp = $(".widget_rate")[0].html();
var temp = $(".widget_rate")[0].outerHTML;

但没有任何效果。我很感激有一个解决方法。

2 个答案:

答案 0 :(得分:1)

当您使用[0]访问时,您只获得元素。不是Jquery对象。你必须重用$ function。

var temp = $(".widget_rate")[0].html();

如果你只想要三个中的第一个,你可以使用:第一个选择器

var temp = $(".widget_rate:first").html();

http://api.jquery.com/category/selectors/

有很多选择器

答案 1 :(得分:0)

使用eq代替

var temp = $(".widget_rate").eq(0).html();

或简单

var temp = $(".widget_rate").html(); //It will give for first one.

DEMO