Javascript 替换<;预处理>;没有<;代码>;至<;预处理>&书信电报;代码>;一次
如何更换刚 <pre><p>Hello</p></pre> <-- Target <pre><code><p>Hello World</p></code></pre> 我只需要零钱 我想是正则表达式吧 ' }) } 替换('” 替换(“”) //返回“”Javascript 替换<;预处理>;没有<;代码>;至<;预处理>&书信电报;代码>;一次,javascript,Javascript,如何更换刚 <pre><p>Hello</p></pre> <-- Target <pre><code><p>Hello World</p></code></pre> 我只需要零钱 我想是正则表达式吧 ' }) } 替换('” 替换(“”) //返回“” 您的问题显然不清楚,但如果我理解正确,您基本上希望将
您的问题显然不清楚,但如果我理解正确,您基本上希望将标记添加到任何尚未包含的标记中 这可以通过获取所有标记,然后查看其子项以查看是否存在标记来完成:
函数fillInMissingTags(outerTag,innerTag){
var elements=document.getElementsByTagName(outerTag);
对于(var elementIndex=0,elementsLength=elements.length;elementIndex
这将只处理直接子项中的检查。如果要执行深度检查,则需要修改它以递归地检查子项
编辑
我使它更通用,因此您可以使用该方法包装缺少适当子元素的任何元素的内部。感谢“”
我已经用这个jquery解决了我的问题:
检查我在网站下面的问题:web development.cf/p/testting page.html这很不清楚。你是在问如何使用Javascript修改DOM元素的内容吗?我想OP希望每个元素都有一个子元素。我想我修复了混乱的逻辑
$(:pre:not(:has(code)))。每个(function(){$(This)。wrapInner(
)});
感谢“Alon Eitan”-->我已经用这个jquery解决了我的问题:$($pre:not(:has(code))))。每个(function(){$(this.wrapInner(
));在下面的网站上查看我的问题:web-development.cf/p/testting-page.html1:不是我而是阿隆,2:不要用别人的代码回答,而是让他回答并接受他的答案
<pre><code><p>Hello</p></code></pre> <-- Only change this <pre>
<pre><code><p>Hello World</p></code></pre>
function replace(html) {
return html
// Look-ahead for <code>
.replace(/(<pre>)(?!<code>)/gi, '<pre><code>')
// Look-behind for </code>
.replace(/(<\/pre>)/gi, function(m, g, i, s) {
return s.slice(i-7, i) === '</code>'
? m
: '</code></pre>'
})
}
replace('<pre><p>Hello</p></pre>')
// returns "<pre><code><p>Hello</p></code></pre>"
replace('<pre><code><p>Hello World</p></code></pre>')
// returns "<pre><code><p>Hello World</p></code></pre>"
function fillInMissingTags(outerTag, innerTag) {
var elements = document.getElementsByTagName(outerTag);
for(var elementIndex = 0, elementsLength = elements.length; elementIndex < elementsLength; elementIndex++) {
var element = elements[elementIndex],
found = false
html;
for(var childIndex = 0, childrenLength = element.children.length; childIndex < childrenLength; childIndex++) {
var child = element.children[childIndex];
if(child.tagName.toLowerCase() === innerTag) {
found = true;
html = element.innerHTML;
break;
}
}
if(found !== true) {
var codeElement = document.createElement(innerTag);
codeElement.innerHTML = html;
element.innerHTML = codeElement;
}
}
}
fillInMissingTags('pre', 'code');
$("pre:not(:has(code))").each(function() { $(this).wrapInner( "<code></code>") });