jQuery:数组函数在第一项之后停止

jQuery:数组函数在第一项之后停止,jquery,select,dynamic,Jquery,Select,Dynamic,我想使用下面的函数创建一个具有列唯一值的下拉列表 该函数创建下拉列表,但仅显示该列的第一个值,而不是该列的所有唯一值 这里出了什么问题或遗漏了什么 function createDropdownFromColumn() { var arr = []; $("td:first").each(function() { if ($.inArray($(this).text(), arr) == -1) arr.push($(this).text(

我想使用下面的函数创建一个具有列唯一值的下拉列表

该函数创建下拉列表,但仅显示该列的第一个值,而不是该列的所有唯一值

这里出了什么问题或遗漏了什么

function createDropdownFromColumn() {
    var arr = [];
    $("td:first").each(function() {
        if ($.inArray($(this).text(), arr) == -1)
            arr.push($(this).text());
    });

    // create select
    var select = $("<select />");
    for (var i = 0; i < arr.length; i++) {
        $("<option>" + arr[i] + "</option>").appendTo(select);
    }

    // append select
    select.appendTo("body");
}
函数createDropdownFromColumn(){
var-arr=[];
$(“td:first”)。每个(函数(){
if($.inArray($(this.text(),arr)=-1)
arr.push($(this.text());
});
//创建选择
var select=$(“”);
对于(变量i=0;i
该选择器可能只匹配一个元素,即第一个TD,而您实际上是在寻找
第一个子元素
选择器:

$("td:first-child").each(function() {...

该选择器可能只匹配一个元素,即第一个TD,而您实际上是在寻找
第一个子元素
选择器:

$("td:first-child").each(function() {...

您只得到一个值,因为您只要求第一个匹配的
td
元素

您的选择器是:

"td:first"
根据,它只检索第一个匹配的元素。如果您希望所有
td
元素都是其各自
tr
元素的第一个子元素,那么您的选择器应该是:

"td:first-child" 

有关更多信息,请参阅上的文档。

您只能获得一个值,因为您只需要第一个匹配的
td
元素

您的选择器是:

"td:first"
根据,它只检索第一个匹配的元素。如果您希望所有
td
元素都是其各自
tr
元素的第一个子元素,那么您的选择器应该是:

"td:first-child" 

有关更多信息,请参阅上的文档。

如果您遇到类似问题,请确保下次也在那里进行一些调试。例如,打印“arr”数组中的元素数可能会指出问题在于只抓取了一项

这会让您回到选择器的问题,然后检查:

“:first”描述为:“选择第一个匹配的元素。”


在编写网站代码时,jquery网站是一个非常好的资源。

如果您遇到这样的问题,请确保下次也在那里进行一些调试。例如,打印“arr”数组中的元素数可能会指出问题在于只抓取了一项

这会让您回到选择器的问题,然后检查:

“:first”描述为:“选择第一个匹配的元素。”


在编写网站代码时,jquery网站是一个了不起的资源。

非常感谢-这非常有用!非常感谢-这是非常有用的!