【发布时间】:2015-09-25 20:53:58
【问题描述】:
问题:
假设我有一个带有这样文本的 div
<div id=”bla”>One Two Three Four Five</div>
我希望能够以编程方式获取任何子字符串并将其包装到 <div> 中,并附加一些处理程序(比如 onlick)。我希望能够多次对文本的不同部分执行此操作,所以最后我的 div 最终看起来像这样:
<div id=”bla”>One <div id=”bla2”>Two</div> Three <div id=”bla4”>Four</div> Five</div>
问题是怎么做?
一些想法:
如果我想将字符串 Two 包装到 div 中,那么如果我只使用 html() 获取整个 div 内容,在 Two 之前和之后执行 substring,然后在 div 上执行 .empty() 和 .append(beforeSubstring, <Two wrapper with some handler>, afterString) - 它看起来不错,但它会将 beforeSubstring 和 afterSubstring 放入“”并删除所有以前的处理程序。但我想保留以前的处理程序,我不需要“”,因为它会让我搞砸。
有什么想法吗? :)
【问题讨论】:
-
您的 HTML 文档是否使用
”(而不是")引号进行验证? -
另外...
<div id=”bla2”>您自动获得了该 ID? -
html 中是否存在事件处理程序,这些事件处理程序在任何此操作之前已经受到影响?如果是这样,则必须迭代文本节点,否则可以在新节点上使用事件委托
-
@Pinny 我认为如果你用代码编写算法而不是用英文编写算法,你会更容易理解。
-
@RokoC.Buljan。我出去了两天,现在我正在尝试应用我在这里的两个解决方案。我不想向该线程发送垃圾邮件。一旦我得到 pos/neg 答案 - 我会在这里发帖。
标签: javascript jquery html