Javascript 如何在jquery中循环表td并返回字符串?
我有一个简单的表格(比这个例子大)Javascript 如何在jquery中循环表td并返回字符串?,javascript,jquery,html,Javascript,Jquery,Html,我有一个简单的表格(比这个例子大) 我知道'each'函数的存在,但它是一个回调函数,我不能在循环过程中生成字符串(是吗?)。这就可以了 var text = ""; $("#chess_board").find("td").each(function() { if (this.id !== "" && this.innerText !== "") { text += this.id + " " + this.innerText + " "; }
我知道'each'函数的存在,但它是一个回调函数,我不能在循环过程中生成字符串(是吗?)。这就可以了
var text = "";
$("#chess_board").find("td").each(function() {
if (this.id !== "" && this.innerText !== "") {
text += this.id + " " + this.innerText + " ";
}
});
console.log(text);
你差一点就成功了。您只需在
each()
函数外部声明字符串,这样它在执行期间和之后都可用。这将实现以下目的
var text = "";
$("#chess_board").find("td").each(function() {
if (this.id !== "" && this.innerText !== "") {
text += this.id + " " + this.innerText + " ";
}
});
console.log(text);
你差一点就成功了。您只需在
each()
函数之外声明字符串,这样它在执行期间和之后都可用。您可以这样做:
$(函数(){
var allString=“”;
$(“#国际象棋棋盘td[id]”)。每个(函数(){
if($(this.find(“.black”).html().trim().length>0)
allString+=this.id++$(this.find(“.black”).html().trim()+”;
});
警报(所有字符串);
});代码>
我想你可以这样做:
$(函数(){
var allString=“”;
$(“#国际象棋棋盘td[id]”)。每个(函数(){
if($(this.find(“.black”).html().trim().length>0)
allString+=this.id++$(this.find(“.black”).html().trim()+”;
});
警报(所有字符串);
});代码>
您可以使用map()
来创建所需值的数组,而不是each()
。从那里可以join()
数组以创建所需的字符串。试试这个:
var value=$('#棋盘td')。过滤器(函数(){
返回$.trim($(this).text())!='';
}).map(函数(){
返回$.trim(this.id+''+$(this.text());
}).get();
console.log(values.join(“”))代码>
您可以使用map()
来创建所需值的数组,而不是each()
。从那里可以join()
数组以创建所需的字符串。试试这个:
var value=$('#棋盘td')。过滤器(函数(){
返回$.trim($(this).text())!='';
}).map(函数(){
返回$.trim(this.id+''+$(this.text());
}).get();
console.log(values.join(“”))代码>
使用数组可以更有序地完成,例如:
var结果=[];
$(“#国际象棋棋盘td”)。每个(函数(){
var text=$(this.text();
text.length&&result.push($(this.attr(“id”)+“”+text);
});
console.log(result.join(“”)
使用数组可以更有序地完成,例如:
var结果=[];
$(“#国际象棋棋盘td”)。每个(函数(){
var text=$(this.text();
text.length&&result.push($(this.attr(“id”)+“”+text);
});
console.log(result.join(“”)
您应该尝试:
var text = "";
$('td').each(function(index, elem) {
if ($(elem).find('a').text() != '')
{
text += elem.id + ' ' + $(elem).find('a').text() + ' ';
}
});
console.log(text);
您应该尝试:
var text = "";
$('td').each(function(index, elem) {
if ($(elem).find('a').text() != '')
{
text += elem.id + ' ' + $(elem).find('a').text() + ' ';
}
});
console.log(text);
您可以使用jQuery map()
var-tds=$(“td”);
var txt=tds.map(函数(){
var x=$.trim($(this.text());
返回x.length?x:null
}).get().join(“”);
控制台.log(txt)代码>
您可以使用jQuery map()
var-tds=$(“td”);
var txt=tds.map(函数(){
var x=$.trim($(this.text());
返回x.length?x:null
}).get().join(“”);
console.log(txt)代码>
不要使用您可以使用的每个功能如下:
$(函数(){
var allString=[];
allString=$(“#国际象棋棋盘td”).map(函数(){
返回$(this.find(“a”).html()!=“”?$(this.attr(“id”)+“”+$(this.find(“a”).html():“”;
}).get();
allString=allString.join(“”.trim();
警报(所有字符串);
});代码>
不要使用您可以使用的每个功能如下:
$(函数(){
var allString=[];
allString=$(“#国际象棋棋盘td”).map(函数(){
返回$(this.find(“a”).html()!=“”?$(this.attr(“id”)+“”+$(this.find(“a”).html():“”;
}).get();
allString=allString.join(“”.trim();
警报(所有字符串);
});代码>
工作正常!非常感谢。没问题-很乐意帮忙:)效果很好!非常感谢。没问题-很乐意帮忙:)