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();
警报(所有字符串);
});


工作正常!非常感谢。没问题-很乐意帮忙:)效果很好!非常感谢。没问题-很乐意帮忙:)