Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用html页面上所有文本区域的所有名称(或ID)创建数组?_Javascript_Html - Fatal编程技术网

Javascript 如何使用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') {

如何创建包含html页面中所有文本区域的所有名称(或ID)的数组?我尝试过这个,但不起作用:

 $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)
})