Javascript 如何使用html页面上所有文本区域的所有名称(或ID)创建数组?
如何创建包含html页面中所有文本区域的所有名称(或ID)的数组?我尝试过这个,但不起作用:Javascript 如何使用html页面上所有文本区域的所有名称(或ID)创建数组?,javascript,html,Javascript,Html,如何创建包含html页面中所有文本区域的所有名称(或ID)的数组?我尝试过这个,但不起作用: $arrayTextAreasNames = []; var listFields = document.getElementsByTagName('*'); for(var i = 0; i < listFields.length; i++) { if(listFields[i].type == 'textarea') {
$arrayTextAreasNames = [];
var listFields = document.getElementsByTagName('*');
for(var i = 0; i < listFields.length; i++)
{
if(listFields[i].type == 'textarea')
{
$arrayTextAreasNames[] = listFields[i].name; //Empty!
}
}
$arrayTextAreasNames=[];
var listFields=document.getElementsByTagName('*');
对于(var i=0;i
请阅读此文档以了解更多信息
您可以使用'textarea'
而不是'*'
来避免过滤步骤
type
是在
元素(以及其他一些元素)上找到的属性。它没有描述元素类型。您正在寻找标记名
属性
JavaScript不是PHP。您需要使用push
方法将内容添加到数组中,而不是将其分配给未命名的属性
var arrayTextAreasNames=[];
var listFields=document.getElementsByTagName('textarea');
对于(var i=0;i
您可以使用调用或应用将Array.prototype.map
应用到HTMLCollection:
const t=document.getElementsByTagName('textarea');
//对任何iterable使用“map”
const map=arr=>fn=>Array.prototype.map.call(arr,fn);
const names=map(t)(x=>x.name);
常数id=map(t)(x=>x.id);
console.log(名称)
console.log(ids)
getElementsByTagName不返回arrayNo,这将返回带有标记“textarea”的项。这不是问题所要求的。我希望循环读取并向数组中添加每个textarea的所有名称或ID,而不必逐个指定。同样值得注意的是,对于大多数用例,将元素从HTMLCollection移动到“适当”数组中是不必要的。很酷的方法,不管他要求什么,你都能真正做到他想要做的事情。:)
var listFields = document.getElementsByTagName('textarea');
var listFields = document.getElementsByTagName('*');
listFields[i].type == 'textarea'
$arrayTextAreasNames[] = listFields[i].name; //Empty!
var tAreaList = [];
var tAreas = document.getElementsByTagName("textarea");
Array.prototype.slice.call(tAreas).forEach (function (tArea) {
tAreaList.push(tArea.id)
})