2

我有如下附加代码:

if (json.expData[i] != null) {
    $('#text' + i)
    .append("<br><br><img src='/balloon.png'>" + json.expData[i]);
}

当用户单击按钮时,此代码将运行并附加。但是,如果用户再次单击该按钮,它会再次附加,依此类推。

有什么方法可以检测到数据已经被附加,并且只有在第一次添加时才添加?

4

3 回答 3

1

您可以在元素上存储一个布尔属性,例如data-isappended.

if (json.expData[i] != null) {
    var $text = $('#text' + i);
    if (!($text.data("isappended"))){
       $text.append("<br><br><img src='/balloon.png'>" + json.expData[i]);
       $text.data("isappended", true);
    }
}
于 2012-06-11T10:14:18.840 回答
0

检查里面是否有img标签#text,应该这样做

if ($('#text' + i).find('img').length > 0) 
{
    $('#text' + i).append("<br><br><img src='/balloon.png' />" + json.expData[i]);

}
于 2012-06-11T10:13:12.520 回答
0

如果您没有任何其他id包含 contains的元素,#text那么您可以这样尝试:

if( $('[id^=text]').length ) { // if some element with id text exists 

} else { // not exists

}
于 2012-06-11T10:32:37.673 回答