问题 Jquery或javascript在
中添加x个字符后添加一个换行符


我正在寻找一种方法来插入一个 <br /> 仅在一个中的前4个或5个字符之后 <div>

例: <div id="wine-name">2008 Cabernet Sauvignon</div>

要显示如下:

2008年
赤霞珠

不确定哪个更容易javascript或jQuery。该网站已经在使用jQuery。

有任何想法吗?


6306
2017-08-15 18:00


起源

jQuery是一个javascript库,它通常会使事情变得更容易。 - jackJoe


答案:


如果您确定要始终在第四个字符后插入中断,则可以执行以下操作:

var html = $("#wine-name").html();
html = html.substring(0, 4) + "<br>" + html.substring(4);
$("#wine-name").html(html);

你可以看到它在行动 这里

如果你希望它在第一个单词(由空格分隔)后断开,你可以这样做:

var html = $("#wine-name").html().split(" ");
html = html[0] + "<br>" + html.slice(1).join(" ");
$("#wine-name").html(html);

你可以看到这个在行动 这里

编辑您的评论:

$(".wine-name").each(function() {
    var html = $(this).html().split(" ");
    html = html[0] + "<br>" + html.slice(1).join(" ");
    $(this).html(html);
});

看见 这里


16
2017-08-15 18:05



谢谢,这些工作中的任何一个都很棒,前提是只有1个div。在我的情况下,一系列的葡萄酒在一系列的葡萄酒中被填充,虽然每种葡萄酒都有一个div =“葡萄酒名称”,但这只会影响列表中的第一款葡萄酒。奇怪。 - rod
@ Rod,你不能有两个具有相同id的元素。你想要一堂课。看看我编辑的帖子,看看我的意思。 - Peter Olson
你是对的,对不起。我添加了一个<span class =“wine-name”>,它完美无缺。你摇滚,谢谢! - rod
这怎么会用于2个单词? - Matthew Woodard
@MatthewWoodard就是这么做的 html = html.slice(0,2).join("") + "<br>" + html.slice(2).join("") - Peter Olson


JavaScript中的代码看起来像这样:

var element = document.getElementById('wine-name');
element.innerHTML = element.innerHTML.substring(0, element.innerHTML.indexOf(' ')) + '<br />' + element.innerHTML.substring(element.innerHTML.indexOf(' '), element.innerHtml.length);

使用JQuery可能更好。


0
2017-08-15 18:06