问答详情
源自:9-16 创建元素节点createElement

为什么用setAttribute不行,但是直接用属性赋值却可以?求解

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>无标题文档</title>

</head>

<body>

<script type="text/javascript">

var main = document.body;

//创建链接

function createa(url,text)

{

  var a=document.createElement("a");  

  a.setAttribute("href","url");

  a.setAttribute("value","text");

  main.appendChild(a);

}

// 调用函数创建链接

createa("http://www.baidu.com","我是一条link");


</script> 

</body>

</html>


提问者:艾尔修兎 2020-01-25 23:17

个回答

  • 走馬勿观花
    2020-03-23 12:29:29

    比如<a>JAVA</a><input value="PHP" />

    <a></a>  //这是元素节点

    JAVA       //这是文本节点

    <input />    //这是元素节点

    PHP      //这是属性节点


    setAttribute(属性名,属性值);

    很明显,JAVA是<a>的文本,不是属性,无法通过value添加,只能是innerHTML。

    当然,如果是<input type="text" value="" />就可以用   setAttribute('value','PHP');



  • 走馬勿观花
    2020-03-23 12:21:16

    文本内容是innerHTML,
    value想要显示,只能在input用

    这里又区分input和其他元素。

    input获取是 .value;

    其他元素获取是 .innerHTML

    前面有讲,可以回顾看看

  • 朦胧5
    2020-02-23 13:04:12

    你给value赋值,但value是不显示的,你要是想a标签显示text内容的话,那得赋值给innerHTML