如果.like count div为空,则无法增加计数

时间:2014-10-16 05:43:31

标签: javascript jquery html

我试图在div和用户之间获取int值,就像它应该增加计数一样。 但是当div之间没有数据时我没有处理。

我的HTML代码

<div class="thumbnail" id="123">
    <ul>
        <li class="likeStatus"><a href="#" id="likeitlink" title="like this">Like</a>

        </li>
        <li><a href="#" class="likecount">
            </a> 
        </li>
    </ul>
</div>

我的Jquery

$(document).on('click', '#likeitlink', function (event) {
    event.preventDefault;
    var msgid = $(this).parents('.thumbnail').attr('id');
    $('#' + msgid + ' .likeStatus').html('<a href="#" id="Unlikeitlink" title="Unlike this">Unlike</a>');
    if ($.trim($('#' + msgid + ' .likecount')).is(':empty')) {
        $('#' + msgid + ' .likecount').html("0");
         alert($('#' + msgid + ' .likecount').html("0"));
    }

    $likesNo = parseInt($('#' + msgid + ' .likecount').html(), 10);
    alert($likeNo);
    $likesNo++;
    // alert($likeNo);
    $('#' + msgid + ' .likecount').html("" + $likesNo);
});

我尝试了代码 here

3 个答案:

答案 0 :(得分:2)

我猜你在阅读“likecount”值时遇到了问题,所以下面的解决方案只是替换条件

 if (!$.trim($('#' + msgid + ' .likecount').html())) {
            $('#' + msgid + ' .likecount').html("0");
            alert($('#' + msgid + ' .likecount').html());
  } 

答案 1 :(得分:0)

我要教你如何钓鱼。然而,我不会给你一条鱼。

在Google Chrome中按照以下说明操作:

  1. 右键单击浏览器窗口
  2. 点击“检查元素”
  3. 点击您喜欢的链接,以便触发onclick触发器。
  4. 点击“控制台”标签,您会看到错误
  5. 单击控制台右侧的(索引):26链接。你会看到你确切的问题。

答案 2 :(得分:0)

第一步删除链接中的空格

<a href="#" class="likecount"></a> 

替换

 if ($.trim($('#' + msgid + ' .likecount')).is(':empty')) {
    $('#' + msgid + ' .likecount').html("0");
     alert($('#' + msgid + ' .likecount').html("0"));
}

if (($('#' + msgid + ' .likecount')).html() == '') {
    $('#' + msgid + ' .likecount').html("0");
     alert($('#' + msgid + ' .likecount').html("0"));
}

所以你的新代码变成了

$(document).on('click', '#likeitlink', function (event) {
    event.preventDefault;
    var msgid = $(this).parents('.thumbnail').attr('id');
    $('#' + msgid + ' .likeStatus').html('<a href="#" id="Unlikeitlink" title="Unlike this">Unlike</a>');
    if (($('#' + msgid + ' .likecount')).html() == '') {
        $('#' + msgid + ' .likecount').html("0");
         alert($('#' + msgid + ' .likecount').html("0"));
    }

    $likesNo = parseInt($('#' + msgid + ' .likecount').html(), 10);
    alert($likesNo);
    $likesNo++;
    alert($likesNo);
    $('#' + msgid + ' .likecount').html("" + $likesNo);
});

和html代码

<div class="thumbnail" id="123">
<ul>
    <li class="likeStatus">
        <a href="#" id="likeitlink" title="like this">Like</a>
    </li>
    <li>
        <a href="#" class="likecount"></a> 
    </li>
</ul>
</div>

如果你想用空格

$(document).on('click', '#likeitlink', function (event) {
    event.preventDefault;
    var msgid = $(this).parents('.thumbnail').attr('id');
    $('#' + msgid + ' .likeStatus').html('<a href="#" id="Unlikeitlink" title="Unlike this">Unlike</a>');
    var prev = $('#' + msgid + ' .likecount').html();
    prev = parseInt(prev) || 0;
    if (prev == 0) {
        $('#' + msgid + ' .likecount').html("0");
    }

    $likesNo = parseInt($('#' + msgid + ' .likecount').html(), 10);
    $likesNo++;
    $('#' + msgid + ' .likecount').html("" + $likesNo);
});