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

来源:9-16 创建元素节点createElement

艾尔修兎

2020-01-25 23:17

<!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>


写回答 关注

3回答

  • 走馬勿观花
    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');



    走馬勿观花

    有一点错了, PHP //是属性节点的值 value //才是属性节点

    2020-03-23 12:31:11

    共 1 条回复 >

  • 走馬勿观花
    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

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题