0

我正在使用一个弹出框,我需要动态更改其中的内容,但只是其中的一部分。更具体地说,我正在使用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?

4

1 回答 1

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()父元素上的函数来允许自己将事件处理程序附加到动态生成的元素。

于 2013-01-22T21:09:33.873 回答