替换Jquery中的文本错误

时间:2016-03-10 16:42:57

标签: jquery

在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>

代码有什么问题?

1 个答案:

答案 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-600Hello)您可以尝试直接替换(Goodbye

但这些选择并不是很好。此时,你有可能不会改变标记或使用其他语言,或者其中有足够的空间或其他任何内容。

到目前为止,最好的解决方案是让控制HTML的人编写它,以便你想要控制的东西都在他们自己的单独元素中(并且foo.html( foo.html().replace(old_text, new_text)元素没有&#39; t出现在任何地方)。

<i>