为什么jQuery会删除我的<img/>元素?

时间:2009-05-07 13:15:30

标签: javascript jquery jquery-plugins

我正在使用带有BlockUI插件的jQuery在单击链接后阻止页面。我还使用DOM元素在页面被阻止时显示消息。

以下是使用代码的简单示例:

<a id="testme" href="#">Click Me</a>

<script type="text/javascript">
    $(document).ready(function() {
        $('#testme').click(function() {
            // Set our message in the message panel....
            $('#progressMessage').text('Please wait!');
            $.blockUI({
                message: $('#progressWidget')
            });
        });
    }
</script>

<div id="progressWidget" style="display:none" align="center">
    <div class="modalUpdateProgressMessage">
        <div id="progressMessage" />
        <img src="spinbar.gif" />
    </div>
</div>

我遇到的问题是,当我设置.text()元素的<div id="progressMessage" />时,<img src="spinbar.gif" />元素似乎被删除了。我已经确认这实际上是使用Firebug发生的。

我也尝试使用<span>代替<div> progressMessage,但结果是一样的。

任何人都可以解释为什么会这样吗?

4 个答案:

答案 0 :(得分:5)

不要做自动关闭的DIV,它无效。

答案 1 :(得分:2)

自我关闭是问题

$("#selector").append("<div>"); //fail

$("#selector").append("<div/>"); //fail

$("#selector").append("<div></div>"); //SUCCESS!

答案 2 :(得分:1)

div id =“progressMessage”会在分配文本时覆盖img。 使用<div id="progressMessage"></div>代替

答案 3 :(得分:0)

您可以使用.append添加文字

$('#progressMessage').text('Please wait!');

.append()

相关问题