我可以更新Twitter Bootstrap数据内容的一部分吗?

时间:2013-01-22 21:00:02

标签: jquery twitter-bootstrap

我正在使用一个popover,我需要动态地改变其中的一部分内容。更具体地说,我正在使用bootstrapx-clickover,所以我不能简单地更新数据内容,因为我的按钮会关闭弹出窗口。

我目前的代码如下:

<span class="label label-importan" rel="clickover" data-content="NEW TEXT HERE<button class='btn' data-toggle='button' data-dismiss='clickover'>Close</button>" data-original-title="Title">data</span>

如果我打电话:

....
var el = $(this);
el.attr('data-content', "New Data");
....

这很遗憾地删除了按钮代码。有没有办法只更新数据内容的文本而不是按钮HTML?

1 个答案:

答案 0 :(得分:1)

假设data-content属性的内容与您的示例保持一致,IE总会有一些文本后跟一个<button>元素,您可以使用一些类似于此的代码 -

var attributeContent = el.data('content');
var withoutText = txt.replace(/.*<button/,'<button');
el.data('content','SOME NEW TEXT HERE'+withoutText);

它是一种低技术解决方案,它取决于data-content值的一致性,但这可能只适用于您的具体情况。

因为您实质上每次都添加一个新元素(<button>元素),您可能需要在父元素上使用delegate()函数来允许自己将事件处理程序附加到元素动态生成。