我在列表项中有很长的项目列表,我需要通过它来添加逗号和空格并显示为逗号分隔的项目字符串:
所以我有以下内容:
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>etc</li>
</ul>
我需要显示以下内容:
第1项,第2项,第3项,第4项等
<p>Item 1, Item 2, Item 3, Item 4, etc</p>
我是javaScript的新手,所以任何帮助都会很棒。
感谢
答案 0 :(得分:3)
在代码中使用唯一ID会使这样的工作变得更加简单。
<ul id="myUL">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>etc</li>
</ul>
<p id="myPara"></p>
javascript看起来像这样
//Grab your ul element by id and then all the li tags within it.
var myArr = document.getElementById("myUL").getElementsByTagName("li");
//Grab your paragraph you wish to populate
var para = document.getElementById("myPara");
//Specify an output array
var output = [];
//Loop over your li's and grab the html content
for(var i=0; i<myArr.length; i++){
output.push(myArr[i].innerHTML);
}
//Set the paragraph value by joining the outputs together
para.innerHTML = output.join(", ");
这是一个有效的jsFiddle - http://jsfiddle.net/GBdTM/
一些有用的参考资料
答案 1 :(得分:2)
您希望选择有趣的元素,获取文本并以字符串", "
作为分隔符加入文本。
使用document.querySelectorAll
获取元素:
var els = document.querySelectorAll("ul > li"); // ul > li is a "CSS selector"
通过迭代返回的NodeList
将元素集合转换为其文本集合:
var text = [];
for (var i = 0; i < els.length; ++i) {
text.push(els[i].textContent);
}
一起加入他们
var joined = text.join(", ");
一些警告:
querySelectorAll
&lt; 8 textContent
&lt; 9,但您可以将innerText
用于旧IE 答案 2 :(得分:1)
此处不需要JavaScript。一些CSS也会这样做,并保留更多的语义文档结构:
ul {
display: block;
padding: 0;
}
li {
display: inline;
}
li:not(:last-child)::after {
content: ", ";
}
答案 3 :(得分:0)
希望这个小例子可以为你提供一些工作。
$(document).ready(function () {
var str = '';
$('li').each(function () {
str += $(this).text() + ', ';
});
//Remove the last two character
str = str.slice(0, -2);
//assign the string to the <p>
$('p').text(str);
});
答案 4 :(得分:0)
您可以使用Jquery轻松获得此功能 -
Html -
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>etc</li>
</ul>
<span id="lstItem"></span>
Jquery -
$(document).ready(function(){
var ListItem = "";
$('ul li').each(function(){
ListItem += $(this).text() + ", ";
});
$('#lstItem').text(ListItem.substring(0,(ListItem.length - 2)));
});
使用Javascript解决方案 -
var listli = document.getElementsByTagName("li");
var lstItem = [];
for(var i=0; i<listli.length; i++){
lstItem.push(listli[i].innerHTML);
}
var showlist = document.getElementById("lstItem");
showlist.innerText = lstItem.join();
答案 5 :(得分:-1)
只需获取LI的集合,连接他们的文本,然后插入您创建的P并附加到BODY:
var items = document.getElementsByTagName('li'),
count = items.length,
para = document.createElement('p'),
str = items[0].innerHTML,
i;
for (i = 1; i < count; i += 1) {
str += ', ' + items[i].innerHTML;
}
para.innerHTML = str;
document.body.appendChild(para);