CSS解决方案
如果你想禁用多个效果<br>
在页面上,您可以通过 CSS 来完成,而无需使用 JavaScript:
br + br { display: none; }
- 检查jsFiddle 演示 http://jsfiddle.net/ahMMv/.
但是,当您使用标签时,此方法非常理想,如下所示:
<div>Text</div><br /><br /><br />
<div>Text</div><br /><br /><br />
<div>Text</div><br /><br /><br />
在其他情况下,像这样:
Hello World<br /> <br />
Hello World<br /> <br />
Hello World<br /> <br />
它会失败(当 CSS 传递文本节点时)。相反,请使用 JavaScript 解决方案。
JavaScript解决方案
// It's better to wait for document ready instead of window.onload().
window.onload = function () {
// Get all `br` tags, defined needed variables
var br = document.getElementsByTagName('br'),
l = br.length,
i = 0,
nextelem, elemname, include;
// Loop through tags
for (i; i < l - 1; i++) {
// This flag indentify we should hide the next element or not
include = false;
// Getting next element
nextelem = br[i].nextSibling;
// Getting element name
elemname = nextelem.nodeName.toLowerCase();
// If element name is `br`, set the flag as true.
if (elemname == 'br') {
include = true;
}
// If element name is `#text`, we face text node
else if (elemname == '#text') {
// If text node is only white space, we must pass it.
// This is because of something like this: `<br /> <br />`
if (! nextelem.data.replace(/\s+/g, '').length) {
nextelem = br[i+1];
include = true;
}
}
// If the element is flagged as true, hide it
if (include) {
nextelem.style.display = 'none';
}
}
};
- 检查jsFiddle 演示 http://jsfiddle.net/ahMMv/31/.