我有这个HTML代码:
<p id="demo">Visit <br /> stackoverflow <br /> or jsfiddle <br /></p>
<button onclick="myFunction()">Try it</button>
function myFunction()
{
var str = document.getElementById("demo").innerHTML;
var res = str.replace("<br />","");
document.getElementById("demo").innerHTML=res;
}
我想从中删除第一个和最后一个<br />
而不是全部。\ n
这是我的jsfiddle http://jsfiddle.net/3W83m/
答案 0 :(得分:4)
以下是您要问的一般问题的解决方案:
var arr = str.split(/<br\s*\/?>/);
var res = arr[0]+arr.slice(1,-1).join('<br>')+arr.slice(-1);
此答案不要求第一个和最后一个孩子为<br>
。
如果您只想在结尾删除<br>
,那么很容易:
var res = str.replace(/^\s*<br\s*\/?>|<br\s*\/?>\s*$/g,'');
答案 1 :(得分:1)
你可以尝试这种方式,如果你确定第一个和最后一个元素是br
:其他方面你可以循环测试第一个和最后一个br并删除它们。
function myFunction() {
var elem= document.getElementById("demo");
elem.removeChild(elem.firstElementChild);
elem.removeChild(elem.lastElementChild);
}
<强> Demo 强>
为了确保它只删除第一个和最后一个brs而不删除任何其他元素,如果第一个/最后一个不是BR,您可以添加一个简单的安全检查。
function myFunction() {
var elem= document.getElementById("demo"),
fChild = elem.firstElementChild,
lChild =elem.lastElementChild;
if(fChild.tagName === "BR")
elem.removeChild(fChild);
if(lChild.tagName === "BR")
elem.removeChild(lChild);
}
答案 2 :(得分:0)
首先<br/>
:
if (myString.indexOf('<br/>') > 0) {
myString = myString.slice(myString.indexOf('<br/>')+5, myString.length);
}
最后<br/>
:
if (myString.lastIndexOf('<br/>') == myString.length - 5) {
myString = myString.slice(0, -4);
}