将数据属性与jquery一起使用时出现未定义的错误

时间:2012-02-19 12:37:14

标签: javascript jquery attributes undefined

我正在使用jquery在评论系统上构建喜欢和不喜欢,所以我需要jquery操作。 为了实现这一点,我使用的是数据属性,但是我使用此代码

得到了一个未定义的错误

我已经尝试了好几个小时,但我无法提醒数据属性的值。

我的javascript代码:

$('.unlike_link_comment').live("click", function(e){
    e.preventDefault();
    var likescount = jQuery(this).attr("data-likes");
    var newlikescount = parseInt(likescount) - 1;
    var commentid = jQuery(this).attr("data-id");
    var dislikescount = jQuery('#dislike_link_comment_4').data("dislikes");
    alert(dislikescount);
    $.ajax({
    url : 'alter_comments.php?action=unlike&comment_id='+commentid,
    beforeSend: function( xhr ) {
    xhr.overrideMimeType( 'text/plain; charset=UTF-8' );
  },
    success: function( data ) {
    $('#emptydiv_'+commentid).html(data);
    $('#like_count_'+commentid).html('<font color="red">'+newlikescount+' Likes</font>');
    $('#comment_control_'+commentid).html("<a data-likes='"+newlikescount+"' data-id='"+commentid+"' href='' class='like_link_comment'>Like</a> ");  
  }
    });    
    });

我的HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
        <title></title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<div class='stbody' id='stbody_4'>
<div class='stimg'>
<img src='uploads/profile_pics_small/wood_texture_by_pabloalvin-d1igijr.jpg' /></img>
</div>
<div class="unlike_link_comment" style="width: 100px; height: 50px; margin: 0 auto; background-color:yellow">click me!</div>
<div class='sttext'><font color='black'>
sdasdasd
<div class='sttime'>By nicknick</div></font>
<br><br><font color='red'><p id='like_count_4' class='like_count'>0 Likes</p> <p id='dislike_count_4' class='dislike_count'>2 Dislikes</font></p> <div id='comment_control_4' class='commentcontrols'> <a data-likes='0' data-id='4' class='like_link_comment' id='like_link_comment_4' href=''>Like</a><a data-dislikes='2' data-id='4' class='dislike_link_comment' id='dislike_link_comment_4' href=''>Dislike</a></div> </div> </div>  <div id='emptydiv_4'> </div> </body> </html>

1 个答案:

答案 0 :(得分:0)

我自己不是很擅长javascript,但是当我通过lint(javascriptlint.com)运行它时,它会出现以下错误:

$('.unlike_link_comment').live("click", function(e){
    e.preventDefault();
    var likescount = jQuery(this).attr("data-likes");
    var newlikescount = parseInt(likescount) - 1;

=========================================== ^     lint warning:parseInt缺少基数参数

也许这就是问题?