js获取Id的方法getElementById与$的由来和用Id判断元素是否存在及批量动态获取 Id

亮术网 2020-01-06 本网原创

要用js操作一个html元素必须获取到这个元素,而获取元素要用 getElementById() 方法,这个方法是通过元素的Id获取到元素这个对象。getElementById 字符比较多,写得比较长,所以现在常常又用$()来获取html元素对象,这又是怎么回事?

其实$()本质还是通过getElementById()方法获取到html元素对象,只不过把这个获取方法定义为简单的$,这样书写简短快捷方便。取到元素 id 后,可通过它取元素的值和文本;还能用它判断元素是否存在。除一次获取一个元素 id 外,还能一次动态获取多个 id。

 

一、js获取Id的方法getElementById的使用方法

假如有 div 元素如下:

<div id="divId">用javascript获取Id的方法getElementById()的使用方法</div>

var obj = document.getElementById("divId");

以上是通过div的id号divId获取div这个对象,然后就可以对div进行各种操作了,如删除其内容,设置其属性,将其隐藏等等。

值得注意的是:div 必须先于 javascript 代码加载,也就是 div 要放在 var obj = document.getElementById("divId") 的前面,否则因找不到对象而报错。

 

二、js通过$获取html元素的Id

首先需要定义$:

var $ = function (objId) { return ("string" == typeof (objId)) ? document.getElementById(objId) : objId; };

其实是把 $ 定义为一个函数(方法),在这个函数中仍然是通过 getElementById 方法获取元素的这个对象;也就是 $ 本身并不具备获取元素对象的功能,它只是一个字符,不过是把它定义为了一个获取元素对象的方法。

获取上述的div元素通过$表示为:

var obj = $("divId");

用getElementById方法获取要写一长串字母,现在只需写一个字符,是不是方便快捷很多,尤其要获取很多元素对象的时候,优势更明显。

 

 

 

三、js 通过元素 Id 获取其值

假如要添加产品,这里以添加产品名称为例。首先要写 html 代码,然后再写 Javascript 代码,它们分别如下:

Html 代码:

<form id="form1">
      产品名称:<input id="inProName" type="text" />
      <input type="button" id="btnSubmit" value=" 提 交 " onclick ="return AddProduct()" />
    </form>

 

Javascript 代码:

<script type="text/javascript" language="javascript">
    function AddProduct() {
        var proName = document.getElementById("inProName");
        alert(proName.value);
    }
  </script>

提示:这里的 Javascript 代码可以放到 Html 代码前,因为加载网页时不执行 Javascript 代码,单击按钮时才执行。

 

四、js 通过元素 Id 获取其文本

假如要分别取 div 和 span 的文本,它们的代码分别如下:

Html 代码:

<id div="divId">javascript 通过 div 的 id 获取其文本</div>

<span id="spanId">javascript 通过 span 的 id 获取它的文本</ span>

 

Javascript 代码:

<script type="text/javascript" language="javascript">
    var $ = function (objId) { return ("string" == typeof (objId)) ? document.getElementById(objId) : objId; };
    var divObj = $("divId");
    var spanObj = $("spanId");
    alert(divObj.innerHTML + ";" + spanObj.innerHTML);
</script>

 

五、js 判断 html 元素是否存在

若要判断 id 为 imgId 的元素是否存在,代码可以这样写:

if (document.getElementById("imgId" ) != undefined)
        alert( "存在");
    else
        alert("不存在" );

undefined 也可以用 null 代替,即 if(document.getElementById("imgId") != null)。

 

六、js 动态添加和获取 id

1、js 动态添加 id

假如要在一个 div 中动态添加 10 个 div,Html 和 Javascript 代码分别如下:

Html 代码:

<id div="parentDiv"></div>

 

Javascript 代码:

<script type="text/javascript" language="javascript">
        function addIdDynamically(obj) {
            var parent = document.getElementById(obj);
            var parent;

            for (i = 0; i < 10; i++) {
               divObj = document.createElement("div");
               divObj.setAttribute("id", "divId" + i); //给新 div 设置 id
                divObj.innerHTML = "div" + i; //给新 div 添加文本
                parent.appendChild(divObj);
            }
        }
        addIdDynamically("parentDiv");
</script>

 

2、js 动态获取 id

以获取以上动态生成的 10 个 div 的 id 为例,Javascript 代码如下:

<script type="text/javascript" language="javascript">
        function getIdDynamically() {
            var divObj;

            for (i = 0; i < 10; i++) {
               divObj = document.getElementById("divId" + i);
                document.write(divObj.innerHTML); //显示每个 div 的文本
            }
        }
        getIdDynamically();
</script>