使用.empty()后div不会重新填充

时间:2011-10-27 04:39:32

标签: jquery

根据用户的选择填充一些div后,我想让他们选择清除数据并从头开始。

用我正在使用的图片和标题填写div:

$('#options img').click(function () {
    var imageName = $(this).attr('alt');
    var chopped = imageName.split('.');
    $('#titleImage').empty();
    $('#titleImage')
        .prepend(chopped[0]);
    $img = $(this);
    $('#_targetDiv img').attr('src', $img.attr('src'));
})

清除所有div:

$('#reset').click(function () {
    $('div[id^=title], div[id$=_targetDiv]').empty();
});

但点击“重置”重新开始并从菜单中选择图像后,目标div仍然为空,但标题标题确实出现。为什么会发生这种情况,我该如何纠正呢?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我在这里复制了这个问题:http://jsfiddle.net/nrabinowitz/tEkQb/1/

如果您的HTML与我的HTML类似,则问题是您在单击时删除了要更新的元素。当你开始时,你有类似的东西:

<div id="_targetDiv">
    <img src="default.jpg">
</div>

但是点击重置后,您就会在.empty()元素上调用_targetDiv,所以您拥有的只是

<div id="_targetDiv"></div>

假设你的img标签有默认值,可能是1x1空白gif(天哪,我最后一次使用其中一个?),你应该只是将src重置为默认情况下,不删除元素。