0

我有以下 HTML 结构:

<div class='message_top' id='top_7' style='cursor:pointer;'>
    <div class='top_ime'>From: official</div>
    <div class='top_status' id='status_7'>
        <img src='images/message_new.png' height='26' title='New message' />
    </div>
</div>

除此之外,还有很多其他结构相同的DIV,但是ID号不同,例如:

<div class='message_top' id='top_15' style='cursor:pointer;'>
    <div class='top_ime'>From: official</div>
    <div class='top_status' id='status_15'>
        <img src='images/message_new.png' height='26' title='New message' />
    </div>
</div>

现在,我有一个 jQuery 函数,它获取一个 div 的 ID,它应该使用属于它.message_top的 div 的内容执行一个操作。.top_status但是,由于某种原因,在语法中它似乎无法识别.top_statusdiv 的 ID。我知道我不会很好地解释这一点,但这里有一个可以帮助你理解的小提琴(代码和评论在那里):

http://jsfiddle.net/gMy2f/1/

$(function () {
    $('.message_top').click(function(){
        var id = this.id;
        status_id = id.replace("top","status");
        status = $("#"+status_id).html();
        alert(status_id+" "+status);    //status variable is empty, but...
        status2 = $("#status_7").html();
        alert(status2);                 //status2 has the expected value
    });
});

因此,如您所见,如果我调用.html()使用$("#status_7").html();它的方法可以正常工作,但如果我使用$("#"+status_id).html();(status_id 为“status_7”)调用它,则它不起作用。这里发生了什么事?我用过很多次类似的代码,从来没有遇到过任何问题。

4

1 回答 1

6

使用局部变量而不是全局变量。window.status是预定义的并且可能是只读的。

我今天刚刚回答了这个问题:Javascript / jQuery 有系统变量吗?

更新了 jsFiddle。

于 2013-04-11T15:32:39.487 回答