为了账号安全,请及时绑定邮箱和手机立即绑定

为什么用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>


正在回答

3 回答

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

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

JAVA       //这是文本节点

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

PHP      //这是属性节点


setAttribute(属性名,属性值);

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

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



0 回复 有任何疑惑可以回复我~
#1

走馬勿观花

有一点错了, PHP //是属性节点的值 value //才是属性节点
2020-03-23 回复 有任何疑惑可以回复我~

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

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

input获取是 .value;

其他元素获取是 .innerHTML

前面有讲,可以回顾看看

1 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信