根据<br/>使用jquery标记

Split the string based on <br/> tag using jquery

本文关键字:jquery 使用 标记 gt br lt 根据      更新时间:2023-09-26

如何使用jquery拆分包含<br/>标记的字符串。我尝试了以下代码,但在控制台中出现错误。我不知道如何根据<br/>标签拆分字符串这是我尝试的代码

jQuery(document).ready(function($)
    {
        var lines = jQuery('this is for testing <br/> How are you<br/>').split('<br/>');
        jQuery.each(lines, function() {
            alert(this);
        });
    });

任何建议都很好。

这里有很多重复的答案。这个不同。如果你能保证<br/>标签的拼写,其他答案都可以。但是,如果您无法控制HTML,换行标记可能有不同的格式:

<br/>
<BR/>
<br/>
<br>
<br>
…等

主要的浏览器都可以处理所有这些,但建议的.split("<br/>")操作只能处理第一个。一个更健壮的选项是使用正则表达式来匹配标签:

jQuery(document).ready(function($)
{
    var brExp = /<br's*'/?>/i;
    var lines = ("this is for testing <br/> How are you<BR />").split(brExp);
});

我已经编写了不区分大小写的表达式,允许在'<br',而'/'是可选的。

如果要拆分一个普通字符串,不要简单地将其传递给$()

jQuery(document).ready(function($)
    {
        var lines = 'this is for testing <br/> How are you<br/>'.split('<br/>');
        jQuery.each(lines, function() {
            alert(this);
        });
    });

尝试使用这个:

var exploded = lines.split('<br />'); 

更多信息请点击此处

如果您尝试:

jQuery(document).ready(function($)
    {
        var lines = 'this is for testing <br/> How are you<br/>'.split('<br/>');
        each(lines, function() {
            alert(this);
        });
    });

你不能做一些类似的事情吗:

 var lines = 'this is for testing <br/> How are you<br/>'.split('<br/>');

顺便说一句,如果你想去掉空元素,你可以像这样过滤lines

// this will get rid of empty elements 
lines = lines.filter(function(n) { 
    return n; 
});
jQuery(document).ready(function($)
{
var str = 'this is for testing <br/> How are you<br/>';
var lines = str .split('<br/>');
     jQuery.each(lines, function() {
        alert(this);
    });
});

不需要像一样包装在jquery中

jQuery('this is for testing <br/> How are you<br/>').split('<br/>');
Can be like :
('this is for testing <br/> How are you<br/>').split('<br/>');

DEMO

试试这个

jQuery(document).ready(function($)
    {
        var lines = ('this is for testing <br/> How are you<br/>').split("<br/>");
        jQuery.each(lines, function() {
            alert(this);
        });
    });

演示

这是工作代码

jQuery(document).ready(function($)
    {
        var lines = 'this is for testing <br/> How are you<br/>'.split('<br/>');
                alert("workig");
        jQuery.each(lines, function() {
            alert(this);
        });
    });

这不是jQuery解决方案,但希望有人会发现它很有用。函数返回一个或两个元素。

function splitContentsOnBr(el) {
    const before = document.createElement('div');
    const after = document.createElement('div');
    let found = false;
    el.childNodes.forEach(c => {
        if (found) {
            after.appendChild(c.cloneNode(true));
        } else if (c.tagName == 'BR') {
            found = true;
        } else {
            before.appendChild(c.cloneNode(true));
        }
    });
    return after.childNodes.length ? [before, after] : [before];
}
document.querySelector('#result').innerHTML = splitContentsOnBr(document.querySelector('h1'))
    .map(el => el.textContent.trim())
    .join(', ');
<h1>
  First part
  <br>
  Second part
</h1>
<div id="result">
</div>