javascript - 用逗号分割字符串并格式化后显示

标签 javascript jquery html

例如我有一些如下所示的 HTML 元素

<p> apple,banana,oranger</p>

我想使用 javascript 使其像

<p>apple</p> <p>banana</p> <p>orange</p>

我怎样才能实现这个目标?

更新1:

由于某种原因,我正在使用其他方法来完成我的任务,如下所示

var node = document.getElementById('discovereedKeywords');
node.innerHTML = node.innerHTML.replace(/,/g, '<p class="tag-item">');

实际上那些<p>标签实际上是由 for 循环生成的,但我的方法只更改它找到的第一个节点,因此我尝试了

考虑 html 看起来像这样

 <p class="discovereedKeywords"> apple,banana,oranger</p>

 <p class="discovereedKeywords"> apple,oranger,oranger</p>

 <p class="discovereedKeywords"> kiwi,melon,pinapple</p>

Javascript

for (var i=0; i <data.result.data.length; i++){

    var node[i] = document.getElementByClassName('discovereedKeywords');
    node[i].innerHTML = node.innerHTML.replace(/,/g, '<p class="tag-item">');

                }

            }

但是这些都有效,为什么?

最佳答案

使用.split拆分string在数组中。 .join通过连接 </p></p> 得到字符串中的数组在项目之间。将字符串包裹在 <p>

$('p').get(0).outerHTML = ('<p>' + $('p').text().split(',').join('</p><p>') + '</p>');
p {
  border: 1px solid black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<p>apple,banana,oranger</p>

或使用 Array#map没有jQuery

var elem = document.getElementById('demo');
elem.outerHTML = elem.textContent.split(',').map(function(el) {
  return '<p>' + el + '</p>';
}).join('');
p {
  border: 1px solid black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<p id='demo'>apple,banana,oranger</p>

关于javascript - 用逗号分割字符串并格式化后显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37067130/

相关文章:

javascript - 获取 JSON 对象内的 typeof 元素

java - 单个模式中的多个匹配项?

javascript - Adobe Edge 移动图像库

javascript - 如何从 .js 脚本内部获取 .js 脚本的主机名或地址?

javascript - 在模块中重新声明变量还是引用单独的模块更好?

javascript - Chrome 扩展弹出窗口中 &lt;script&gt; 标记内的简单 jQuery 未执行

javascript - 如何在 jquery 中切换除选定元素之外的所有元素

html - 转换 CSS 属性不适用于 <a> 元素

html - 有没有办法查看网页上所有 div 标签周围的边框?

javascript - 如何在 dc.js 的行图中创建目标线