Javascript:can';t将href添加到列表项
我正在尝试向列表项添加新项。但是下面的代码没有向我想要的列表项添加超链接。有人能告诉我怎么了吗 HTML:Javascript:can';t将href添加到列表项,javascript,html-lists,href,Javascript,Html Lists,Href,我正在尝试向列表项添加新项。但是下面的代码没有向我想要的列表项添加超链接。有人能告诉我怎么了吗 HTML: li没有href属性,您必须在li中包装一个a标记 var a = document.createElement("a"); var ulist = document.getElementById("list1"); var newItem = document.createElement("li"); a.textContent = "...ooo"; a.setAttribute('
li
没有href
属性,您必须在li
中包装一个a
标记
var a = document.createElement("a");
var ulist = document.getElementById("list1");
var newItem = document.createElement("li");
a.textContent = "...ooo";
a.setAttribute('href', "http://www.msn.com");
newItem.appendChild(a);
ulist.appendChild(newItem);
属性在
元素上没有意义。如果要将列表元素制作成链接,则需要将其内容包装在
元素中,并对其应用href
。
是的,所以基本上你错过了
锚定
标记的创建。虽然解决了,但我添加了一些信息供你阅读:)
内容和属性
每个元素都有一个:
``[…]元素预期内容的描述。HTML元素的内容必须与元素的内容模型中描述的要求相匹配。[…]”
因此,
元素有一个内容模型。看看我们发现它是:
- 零个或多个和元素
ul
元素中有锚定a
。但是,如何将href
属性添加到ul
然后,我们看一看
可在元素上指定的属性的规范列表
(除非另有禁止),以及非规范性
这些属性的描述。(内容位于破折号左侧
是规范性的,破折号右侧的内容不是。)
对于ul
我们发现:
- 存取键
- 阶级
- 内容可编辑
- 迪尔
- 拖拉的
- 下降区
- 隐藏的
- 身份证
- 朗
- 拼写检查
- 风格
- tabindex
- 头衔
- 翻译
onmouseover
、onclick
、on…
和。但是,正如我们看到的,没有href
属性
总之,我们现在知道:
ul
不能将锚点作为子锚点ul
不能具有href
属性但是,问题是关于
href
的li
元素!
由于li
和ul
/ol
相互交织,我们首先来看看ul
。对于li
我们遵循相同的程序:即:
a
那么属性呢?对于li
我们发现:
- 全局属性
如果元素是ol元素的子元素:值-列表项的序号值
ul
可以不作为孩子拥有锚定ul
可以不具有href
属性li
可以作为孩子使用锚li
可以不具有href
属性解决方案 正如其他人所指出的,是将其添加到我们作为
li
元素的子元素放置的锚中:
<ul>
<li><a href="myurl">Hello</a></li>
</ul>
另一种方法是简单地使用link()方法。例如:
//create new li element
let newListItem = document.createElement("li");
let ulist = document.getElementById("list1");
newListItem.innerHTML = "...ooo".link("http://www.msn.com");
ulist.appendChild(newListItem);
一个人不应该把
li
包裹在锚内,而应该反过来。对!我的意思是包装列表元素的内容,而不是整个内容。我也这么想,但还不清楚。好办法;)
<ul>
<li><a href="myurl">Hello</a></li>
</ul>
//create new li element
let newListItem = document.createElement("li");
let ulist = document.getElementById("list1");
newListItem.innerHTML = "...ooo".link("http://www.msn.com");
ulist.appendChild(newListItem);