我有一个集合,我想从中获取textContent属性并放入列表中.map()无法按预期工作:
table_headers = $("#careerStats table thead tr th");
headers.map(function(obj) {return(obj.textContent);});
[]
Run Code Online (Sandbox Code Playgroud)
当我编写一个迭代版本时,我能够得到一个我预期的值数组:
values = [];
for (i=0; i<table_headers.length; i++) {
values.push(table_headers[i].textContent);
}
values
["Year", "Team", "LG", "W", "L", "ERA", "G", "GS", "CG", "SHO", "SV", "SVO", "IP", "H", "R", "ER", "HR", "HB", "BB", "IBB", "SO", "AVG", "WHIP", "GO/AO", "Year", "Team", "LG", "W", "L", "ERA", "G", "GS", "CG", "SHO", "SV", "SVO", "IP", "H", "R", "ER", "HR", "HB", "BB", "IBB", "SO", "AVG", "WHIP", "GO/AO"]
Run Code Online (Sandbox Code Playgroud)
我一定是对Javascript原型和/或map()的一些误解.
你没有使用JavaScript map()- 这是jQuery的map()行为方式不同:jQuery的地图有以下签名:
$(selector).map(function (index, value) { ... })
Run Code Online (Sandbox Code Playgroud)
您必须使用第二个参数来访问所选元素:
table_headers.map(function(idx, obj) {return(obj.textContent);});
Run Code Online (Sandbox Code Playgroud)
jQuery的地图和JS的地图之间还有另一个区别.jQuery返回一个新的包装器,而不是一个普通的数组.要获取底层数组,您可以使用get以下方法访问它:
mapped_table_headers.get()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
134 次 |
| 最近记录: |