1

在 jquery UI 的以下示例中,我们有一个警告框:

<div class="ui-widget">
    <div class="ui-state-error ui-corner-all" style="padding: 0 .7em;">
        <p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>
        Alert: something went wrong</p>
    </div>
</div>

我希望能够在不删除处理警报图标的部分的情况下编辑警报文本......但也无需在 javascript 中编写所有小部件 html。

如果我做类似$('p').html("new alert")的事情,它会删除跨度(图标)部分。如果我使用$('p').text("new alert").

知道我该怎么做吗?

4

4 回答 4

1

您可以使用内部 div 元素并在其上放置文本

<div><span></span><div id="innerDiv"></div></div>
于 2013-02-18T08:07:13.470 回答
1

试试这个http://jsfiddle.net/euFUL/

HTML

<div class="ui-widget">
    <div class="ui-state-error ui-corner-all" style="padding: 0 .7em;">
        <p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>
            <span id="ErrorMsg">Alert: something went wrong</span>
        </p>
    </div>
</div>

JS

$(function () {
    $('#ErrorMsg').text("new alert");
});
于 2013-02-18T08:07:29.737 回答
0

您可以更改您的 html 结构,但如果您不想这样做,请尝试以下操作:

var $p = $('p');
$p.find('span').appendTo($p.html('Not an alert anymore'));

http://jsfiddle.net/tRMyq/

于 2013-02-18T08:09:09.180 回答
-1

使用 jQuery 特殊选择器:not()

于 2013-02-18T08:05:47.343 回答