javascript如何判断html标签的类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript如何判断html标签的类型相关的知识,希望对你有一定的参考价值。

我用document.getElementById获取到一个html标签元素后,使用.type属性后是未定义(undefined)。我想问一下我获取到一个元素后如何判断它的类型是一个div标签还是一个img标签或者一个script标签。我想用if判断一下,直接alert的话是[object HTMLDivElement]。虽然中间有个HTML,但我不知道怎么提取出来这个然后判断

javascript中可以通过dom元素的tagName进行判断

1、利用document.getElementById()获取到dom元素

2、获取dom元素的属性tagName

3、如果tagName是INPUT,可以再利用元素的type属性判断具体是哪一种INPUT

示例:

<input id="name" type="text" value="123"/>

方法:

function test()
    var text = document.getElementById('name');
    var textTagName = text.tagName;//获取标签类型
    if(textTagName == 'INPUT')//如果是INPUT,判断是何种INPUT,checkbox、text等
        textTagName = textTagName + "," + text.type;
    
    alert(textTagName);

参考技术A 可以通过其他方式取得这个元素,再用tagName获取标签的名称,比如:

document.getElementById("demo").tagName;
参考技术B

你好!!!

alert(  document.getElementById("id").tagName  );

本回答被提问者采纳
参考技术C 使用document.getElementById获取到html标签元素,然后用 document.getElementById("id").tagName 判断。 参考技术D alert(document.getElementById('idname').tagName.toLowerCase());
这个直接弹出 div, img 或者 script

JavaScript JavaScript 初识,树欲千尺,唯有根深。

01-JS 的使用方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 2. 内嵌式, 在 head 标签中,定义 script 标签, 在标签中书写 JS 代码 -->
    <script>
        // ctrl / js 的注释, JS html  都是解释型语言,代码从上到下执行
        alert('我是内嵌式 JS, 我执行了');
    </script>
    <!-- 3. 外链式, 在外部定义单独的 js 文件,书写 JS 代码,使用 script 标签的 src 属性引入 -->
    <script src="./js/main.js"></script>
</head>
<body>
    <!-- 1. 行内式, 给标签添加属性, 主要用于事件  事件="函数调用(参数)"
        alert 是系统中自带的函数,作用是 弹窗
    -->
    <input type="button" value="点我呀,点我呀" onclick="alert('点我干嘛')">
</body>
</html>

04-代码/02-JS 中常见的数据类型.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 变量的定义, var 变量名 = 数据值; 
        // 变量名, 由 字母 数字 下划线和 $ 组成,不能以数字开头, 匈牙利命名风格
        // 1. 数字类型 number 
        // 1.1 整数 
        var iAge = 10;
        // alert(iAge);  // 打印数据值
        // alert(typeof(iAge));   // 查看变量的数据类型
        console.log(iAge, typeof(iAge));
        // 1.2 小数
        var fHeight = 170.3;
        console.log(fHeight, typeof(fHeight));

        // 2. 字符串类型  string
        var sName = 'isaac';
        console.log(sName, typeof(sName));
        
        // 3. boolean  值(true, false)
        var bIsTrue = true;
        console.log(bIsTrue, typeof(bIsTrue));

        // 4. undefined  未定义的,
        var oA;  // 声明变量,没有给数据值
        console.log(oA, typeof(oA));

        // 5. null  空对象
        var oObject = null;
        console.log(oObject, typeof(oObject));
        
    </script>
</head>
<body>
    
</body>
</html>

03-JS 中的函数.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 定义一个函数,实现打印 hello world
        function fnHello()
            console.log('hello world!')
        

        // 函数调用
        fnHello()

        // 定义一个函数, 可以接收两个数字,对数字进行求和,并将求和的结果进行返回
        function fnSum(iNum1, iNum2)
            var iNum = iNum1 + iNum2;
            return iNum;
        

        // 函数调用,由于函数有参数和返回值,所以需要调用的时候传参和接收返回值
        var result = fnSum(10, 20);
        console.log(result);

    
    </script>
</head>
<body>
    
</body>
</html>

04-局部变量和全局变量.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 局部变量: 在函数内部定义的变量,称为局部变量,
        // 全局变量: 在函数外部定义的变量,称为全局变量
        // 1. 在函数内部能否直接读取全局变量的值, ====> 可以直接读取
        // 1.1 定义全局变量 
        var iNum = 100;
        // 1.2 定义函数
        function fnFunc()
            // 1.3 直接打印全局变量的值
            console.log('函数内部访问全局变量的值:', iNum);
            // 2. 在函数内部能否直接修改全局变量的值  ====> 可以直接修改全局变量的值
            // 2.1 直接在函数内部修改全局变量值
            iNum = 200;

            // 3.1 定义局部变量 
            var iAge = 10;
            // 注意点, 在函数内部,定义变量,如果不加 var 关键字, 定义的变量是全局变量
            sName = 'isaac';
        
        fnFunc()
        // 2.2 在函数调用之后,查看全局变量的值,有没有被修改
        console.log('函数外部访问修改后的全局变量的值:', iNum);
        // 3. 函数外部能否使用局部变量   ====> 不能访问局部变量的值
        console.log('sName的值:', sName);
        // 3.2 函数外部访问局部变量的值
        console.log('函数外部访问局部变量的值', iAge);
    </script>
</head>
<body>
    
</body>
</html>

05-JS 装的判断语句.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var iAge = 17;
        if (iAge >= 18)
            console.log('可以进入网吧为所欲为,浏览各种网站');
        

        if (iAge >= 18)
            console.log('可以进入网吧为所欲为,浏览各种网站');
         else 
            console.log('不满 18 岁,回去学习吧');
        

        var fScore = 80;
        if (fScore >= 90)
            console.log("A");
         else if (fScore >= 80)
            console.log("B");
         else if (fScore >= 60) 
            console.log('C');
         else
            console.log("D")
        
    </script>
</head>
<body>
    
</body>
</html>

06-JS 数组.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        //  1. 数组的定义
        // 1.1 使用 Array 类创建
        var aArray = new Array(1, 2, 'hello');
        console.log(aArray, typeof(aArray));
        // 1.2 使用字面量的方式创建
        var aList = [1, 2, 3.14, 'isaac', [3, 6, 9]];
        console.log(aList, typeof(aList));

        // 2. 求数组中元素的个数,数组的长度 数组.length 属性
        console.log('元素个数为:', aList.length);

        // 3. 数组支持下标操作,但是没有负数下标
        // 访问不存在的下标, 得到的值是 undefined
        console.log(aList[0], aList[3], aList[100]);
        // 可以通过下标修改数组中的数据
        aList[3] = 'isaac NL';
        console.log(aList);
        // 直接修改不存在的下标值,在指定的下标位置添加数据,其余位置为空
        aList[10] = 10;
        console.log(aList, aList.length);

        // 4. 根据数据值,找到元素在数组中的第一个下标  indexOf
        // 找到了,返回的下标, 没有找到返回的是 -1
        console.log(aList.indexOf(3.14), aList.indexOf(1000));

        // 5. 尾部添加和删除
        aList.push('last');
        console.log(aList);
        aList.pop()
        console.log(aList);

        // 6. 根据下标,删除添加数据
        // splice(下标, 删除的元素个数, 添加的元素,...)
        aList.splice(2, 2);  // 只删除,不添加
        console.log(aList);
        aList.splice(2, 0, 3, 4, 5);  // 只添加,不删除
        console.log(aList);
        aList.splice(2, 2, 'hello', 'world');
        console.log(aList);
    </script>
</head>
<body>
    
</body>
</html>

07-JS 循环.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 1. while 循环
        var i = 0;
        while (i < 5)
            console.log('写代码中....', i);
            i++;
        

        // 2. for 循环, 遍历数组
        aList = ['郭德纲', '于谦', '小岳岳', '孙越']
        for (var i=0; i < aList.length; i++) 
            console.log(aList[i]);
        
        /* 1. 执行表达式 1
        2. 执行表达式 2, 进行判断
        3. 根据第二步的判断结果,如果为 false, 循环不执行
        4. 根据第二步的判断结果,如果是 true, 进入循环中,执行循环中的代码
        5. 循环中的代码执行结束之后,执行表达式 3,
        6. 执行表达式 2, 重复 2 3 4 5 的步骤,直到条件 为 false 
        */ 

        // 3. do  while 
        do
            console.log('我至少执行一次');
         while(1 > 3);
    </script>
</head>
<body>
    
</body>
</html>

08-JS 获取页面标签.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- <script>
        // getElementById 通过 id 找到对应的标签,找到了就是标签对象,没有找到,返回 null
        var oDiv = document.getElementById('box');
        alert(oDiv + " ----  "  + typeof(oDiv));
    </script> -->

    <script>
        // 解决方案二: 想一种方法, 让标签全部定义完成之后,在执行 JS 代码
        // 便签全部定义完成之后, 会触发一个事件, window.onload 事件,
        // 当页面标签全部加载完成,执行函数中的代码 ,  JS 的入口函数
        window.onload = function()
            var oDiv = document.getElementById('box');
            alert(oDiv + " ----  "  + typeof(oDiv));
        
    </script>
</head>
<body>
    <div id="box">
        这是一个 div 
    </div>

    <!-- 解决方案一, 不建议 -->
    <!-- <script>
        // getElementById 通过 id 找到对应的标签,找到了就是标签对象,没有找到,返回 null
        var oDiv = document.getElementById('box');
        alert(oDiv + " ----  "  + typeof(oDiv));
    </script> -->
</body>
</html>

09-JS 操作页面标签的属性.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 获取页面标签, 在入口函数中定义
        window.onload = function ()
            // 1. 获取 input 标签
            var oInput = document.getElementById('name');
            // 获取 name 属性
            console.log('name属性:', oInput.name);
            console.log('class属性:', oInput.className);
            console.log('value 属性:', oInput.value);
            // 只能获取行内式的 css 属性
            console.log('style属性中的字体大小:', oInput.style.fontSize);
            // 设置 value 属性
            oInput.value = 100;

            // 获取 div标签
            var oDiv = document.getElementById('div1');
            console.log(oDiv.innerHTML);
            console.log(oDiv.innerText);
            oDiv.innerHTML = '好好学习';
        

    </script>
</head>
<body>
    <input type="text" name="name" class="box" id="name" value="10" 
    style="font-size: 26px;">

    <div  id="div1">
        <p>
            这是一个 div 
        </p>
    </div>
</body>
</html>

10-定时器.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var oT = null;
        function fnClick()
            oT = setInterval(alert, 2000, '好好学习')
        

        function fnCalc()
            clearInterval(oT);
        
    </script>
</head>
<body>
    <div>
        <p>点击单次定时器按钮, 3s后弹出 hello</p>
        <!-- setTimeout(执行的函数名, 时间间隔, 第一个参数的参数) -->
        <input type="button" value="单次定时器" onclick="setTimeout(alert, 3000, 'hello')">

    </div>
    <div>
        <p>点击多次定时器按钮,间隔 2, 弹出好好学习,点击 停止, 不再弹出</p>
        <input type="button" value="多次定时器" onclick="fnClick()">
        <input type="button" value="停止" onclick="fnCalc()">
    </div>
</body>
</html>

11-jQuery 的使用.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset

以上是关于javascript如何判断html标签的类型的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript1.0

Javascript判断客户端是Android还是IOS,判断浏览器类型

javascript常用函数

如何在 JavaScript 中判断一个对象是否为空?

JavaScript简单介绍

JavaScript基础