连接附加的字符串并删除最后一个字符
Concatenate appended strings and remove last character
我有一个列表,我想检索所有项目并将它们附加到一个段落中。我目前成功地这样做了,但它并没有附加到一个字符串中(你需要检查 DOM 才能看到它),而是附加到多个字符串中。我试过使用 .concat() 来检索新的 p 但它 returns 是一个错误。另外,在附加时我添加了一个逗号来分隔项目,并且需要删除最后一个。我正在使用 .slice(0, -1) 这样做,但因为它们都是单独的字符串,所以它不起作用。
HTML
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
<li>Six</li>
<li>Seven</li>
<li>Eight</li>
</ul>
<p>String goes here: </p>
JS/JQuery
$(document).ready(function() {
var item = $('ul li');
var p = $('p');
item.each(function() {
itemText = $(this).text();
p.append(itemText + ", ").slice(0,-1);
});
});
之前它不起作用的原因是因为要访问您需要使用的文本 text()
并且您需要在迭代后执行此操作
p.text(p.text().slice(0, -2)); //notice -2 because you have an additional space ', '
$(document).ready(function() {
var item = $('ul li');
var p = $('p');
item.each(function() {
itemText = $(this).text();
p.append(itemText + ", ")
});
p.text(p.text().slice(0, -2)); //notice -2 because you have an additional space ', '
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
<li>Six</li>
<li>Seven</li>
<li>Eight</li>
</ul>
<p>String goes here:</p>
但是,更好的方法是准备一个数组并在最后加入
$(document).ready(function() {
var item = $('ul li');
var p = $('p');
var itemTextA = [];
item.each(function() {
itemTextA.push($(this).text());
});
p.append(itemTextA.join(', '));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
<li>Six</li>
<li>Seven</li>
<li>Eight</li>
</ul>
<p>String goes here: </p>
试试这个
$(document).ready(function() {
var item = $('ul li');
var p = $('p');
var total = item.length;
item.each(function(index) {
itemText = $(this).text();
if(index === total - 1) {
p.append(itemText);
} else {
p.append(itemText + ", ");
}
});
});
Fiddle 这里 http://jsfiddle.net/96t0yb6d/2/
或以上的修改版本
$(document).ready(function() {
var item = $('ul li');
var p = $('p');
var total = item.length;
var seperator = ", ";
item.each(function(index) {
itemText = $(this).text();
if(index === total - 1) {
seperator = "";
}
p.append(itemText + seperator);
});
});
Fiddle 这里 http://jsfiddle.net/96t0yb6d/1/
尝试:
$(document).ready(function(){
var item = $('ul li');
var p = $('p');
var myArray = []
item.each(function(index) {
itemText = $(this).text();
if(!(index == item.length -1)) {
myArray.push(itemText + ',');
}
else {
myArray.push(itemText);
}
});
p.append(myArray);
});
我有一个列表,我想检索所有项目并将它们附加到一个段落中。我目前成功地这样做了,但它并没有附加到一个字符串中(你需要检查 DOM 才能看到它),而是附加到多个字符串中。我试过使用 .concat() 来检索新的 p 但它 returns 是一个错误。另外,在附加时我添加了一个逗号来分隔项目,并且需要删除最后一个。我正在使用 .slice(0, -1) 这样做,但因为它们都是单独的字符串,所以它不起作用。
HTML
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
<li>Six</li>
<li>Seven</li>
<li>Eight</li>
</ul>
<p>String goes here: </p>
JS/JQuery
$(document).ready(function() {
var item = $('ul li');
var p = $('p');
item.each(function() {
itemText = $(this).text();
p.append(itemText + ", ").slice(0,-1);
});
});
之前它不起作用的原因是因为要访问您需要使用的文本 text()
并且您需要在迭代后执行此操作
p.text(p.text().slice(0, -2)); //notice -2 because you have an additional space ', '
$(document).ready(function() {
var item = $('ul li');
var p = $('p');
item.each(function() {
itemText = $(this).text();
p.append(itemText + ", ")
});
p.text(p.text().slice(0, -2)); //notice -2 because you have an additional space ', '
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
<li>Six</li>
<li>Seven</li>
<li>Eight</li>
</ul>
<p>String goes here:</p>
但是,更好的方法是准备一个数组并在最后加入
$(document).ready(function() {
var item = $('ul li');
var p = $('p');
var itemTextA = [];
item.each(function() {
itemTextA.push($(this).text());
});
p.append(itemTextA.join(', '));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
<li>Six</li>
<li>Seven</li>
<li>Eight</li>
</ul>
<p>String goes here: </p>
试试这个
$(document).ready(function() {
var item = $('ul li');
var p = $('p');
var total = item.length;
item.each(function(index) {
itemText = $(this).text();
if(index === total - 1) {
p.append(itemText);
} else {
p.append(itemText + ", ");
}
});
});
Fiddle 这里 http://jsfiddle.net/96t0yb6d/2/
或以上的修改版本
$(document).ready(function() {
var item = $('ul li');
var p = $('p');
var total = item.length;
var seperator = ", ";
item.each(function(index) {
itemText = $(this).text();
if(index === total - 1) {
seperator = "";
}
p.append(itemText + seperator);
});
});
Fiddle 这里 http://jsfiddle.net/96t0yb6d/1/
尝试:
$(document).ready(function(){
var item = $('ul li');
var p = $('p');
var myArray = []
item.each(function(index) {
itemText = $(this).text();
if(!(index == item.length -1)) {
myArray.push(itemText + ',');
}
else {
myArray.push(itemText);
}
});
p.append(myArray);
});