在AJAX操作之后,我需要将Icon + Text + Color从TO DO更改为DONE。
如果我这样做,那就有效(但文字没有改变)!
panel.find('.status-icon').removeClass().addClass('glyphicon glyphicon-ok status-icon');
panel.find('.text-orange-600').removeClass().addClass('text-success'); //.text(configured);
当我尝试更改文字时,
panel.find('.text-orange-600').removeClass().addClass('text-success').text(configured)
文字更改,但图标消失
这是我的HTML
<div class="col-md-3">
<a data-toggle="collapse" data-parent="#accordion-styled" href="#accordion-styled-group{!! $key !!}">
<div class="panel-heading">
<span class="text-orange-600">{{ trans('crud.configure') }}
<i class="glyphicon glyphicon-exclamation-sign status-icon"></i></span>
</div>
代码有什么问题?
答案 0 :(得分:0)
您要替换的HTML包含<i>
元素,该元素是应用图标的位置。 (旁注:这很奇怪,如果您对HTML有任何控制权,请不要使用<i>
附加图标。)
如果您 可以控制HTML,请确保文本(以及 仅 文本)位于{{1}你可以专门定位一个类。
<span>
如果您无法控制HTML,这会变得更加棘手。您可以尝试解析<span class="only-the-text-here-and-absolutely-no-other-markup">Hello</span>
中的内容并重新插入图标。如果您可以预测哪些文本已存在(例如,如果它始终为.text-orange-600
或Hello
)您可以尝试直接替换(Goodbye
)
但这些选择并不是很好。此时,你有可能不会改变标记或使用其他语言,或者其中有足够的空间或其他任何内容。
到目前为止,最好的解决方案是让控制HTML的人编写它,以便你想要控制的东西都在他们自己的单独元素中(并且foo.html( foo.html().replace(old_text, new_text)
元素没有&#39; t出现在任何地方)。
<i>