gpt4 book ai didi

jquery - 如何防止 jQuery.append() 函数自动用

关闭

转载 作者:行者123 更新时间:2023-12-01 00:10:20 24 4
gpt4 key购买 nike

在循环中,我使用以下命令将单个单词 append 到元素

$(".somediv").append(wordArray[i]+" ");

在单词数组中有一些<p></p>标签。如果添加了它们,jQuery 似乎会使用 </p> 自动关闭它们。 。

我怎样才能阻止它这样做?

最佳答案

您不使用 jquery append 标签,而是 append 节点。您正在操作的文档不是像 <html><head><title>T</title></head><body><div id="D"><p>P</p></div></body></html> 这样的字符串。它就像一棵树

HTML Element
+---HEAD Element
| `---TITLE Element
| `---Text node, contents: "T"
`---BODY Element
`---DIV Element, attributes: "id" => "D"
`---P Element
`---Text node, contents: "P"

无法在树中表示“未关闭的标签”或“未完成的元素”。只有完整的元素才能存在。

旧的document.write方法将文档作为字符串进行操作,它可以 append 任意片段,但有significant disadvantages to its use.从DOM-level-0“标签思维”到现代DOM“树思维”的转变是使用jquery的前提。

您需要决定树在添加开始标记的时间和添加结束标记的时间之间的时间间隔内的外观。这是一个可能的答案:添加隐式结束标记,然后每次追加时从头开始重建字符串,如下所示:

$(".somediv").html(wordArray.slice(0,i+1).join(" "));

这样如果 wordArray["foo","<p>","bar","baz","</p>","quux"]循环将像这样工作:

i    string passed to html()        equivalent HTML with all tags shown
0 "foo" "foo"
1 "foo <p>" "foo<p></p>"
2 "foo <p> bar" "foo<p>bar</p>"
3 "foo <p> bar baz" "foo<p>bar baz</p>"
4 "foo <p> bar baz </p>" "foo<p>bar baz</p>"
5 "foo <p> bar baz </p> quux" "foo<p>bar baz</p>quux"

请注意,当 </p>从您的输入中添加,它没有任何效果。并添加 <p>也没有太多明显的效果。因此,如果 wordArray 的每个元素可能会更好包括一些文字:["foo","<p>bar","baz</p>","quux"]

它看起来有点笨拙,但这就是尝试使用不完整的 HTML 元素作为输入格式所得到的结果! 树木思考! 为了 future !

关于jquery - 如何防止 jQuery.append() 函数自动用 </p> 关闭 <p> ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21498057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com