gpt4 book ai didi

javascript - 字符串处理以将尾部斜杠添加到自闭合标签(IMG、BR 等)

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:21:36 24 4
gpt4 key购买 nike

如果我得到一个元素的 innerHTML,某些子元素应该有一个尾部斜杠才能成为有效的 XHTML(例如,“
”),但在 Chrome、Firefox 或 IE 中它们没有,无论的文档类型。

显然这在大多数时候并不重要,但在我的例子中,我使用从 DOM 中抽出 html 作为模板系统的一部分——所以如果那些反斜杠丢失,它们会以这种方式进入结果页面使用这些模板构建,因此该页面不会验证为 XHTML。非验证页面似乎让我的客户感到难过。

所以....我正在寻找一些 javascript 代码(可能是正则表达式),它们会在适当的地方添加反斜杠。如果它适用于对我来说足够好的这些元素类型:

area, base, br, col, embed, hr, img, input, link, meta, param

我想如果标签中有引号中的 > 就不会混淆。

我知道那里有一个 dom-to-xml 库 (http://xhtmljs.codeplex.com/) 可以执行此操作,但它还可以执行许多其他操作并且非常强大。我希望有更简单的东西。

编辑:

好吧,因为我对字符串处理方法没有任何了解,所以我继续做一些对我有用的事情。 (虽然它会被引号中的 > 弄糊涂,我稍后会处理):

var addClosingSlashes = function (htmlString) {
var elemTypes = [
"area", "base", "br", "col", "embed", "hr", "img", "input", "link", "meta", "param"];
var inString, outString = htmlString;
for (var i=0; i<elemTypes.length; i++) {
var index1 = 0, index2;
inString = outString;
outString = '';
while ((index1 = inString.indexOf("<" + elemTypes[i])) != -1) {
if ((index2 = inString.indexOf(">", index1)) != -1 && inString.substring(index2 - 1, index2 + 1) != '/>') {
outString += inString.substring(0, index2) + " />";
inString = inString.substring(index2+1);
}
else {
break;
}
}
outString += inString;
}
return outString;
};

最佳答案

除非这是服务器端 javascript,否则它不会执行任何操作。当浏览器执行 javascript 时,DOM 被构建为 DOM,而不是某种文本元素。也就是说,元素已经构建到树中,您无法再做任何事情来影响渲染。

关于javascript - 字符串处理以将尾部斜杠添加到自闭合标签(IMG、BR 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6628019/

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