Javascript 将类添加到元素内部的 <i>
Javascript Adding a Class to a <i> inside of an element
我在尝试在没有jquery的情况下做事时遇到了一个可耻的问题,我正在尝试将一个类添加到<i>
元素中<span>
中,我知道这很容易用jquery做到,但是我在使用Vanilla Javascript时失败了:
<span id='my1'>
<i>...</i>
</span>
<span id='my2'>
<i>...</i>
</span>
<script type="text/javascript">
var i1 = document.querySelectorAll('#my1 i');
i1.className = 'test'
i1.textContent = 'yep'
var i2 = document.getElementById('my2').getElementsByTagName('i')
i2.className = 'test'
i2.textContent = 'yap'
i2..innerHTML = 'what?'
</script>
小提琴:https://jsfiddle.net/exmcw2uh/
谢谢
.getElementsByTagName('i')
返回一个集合,因此您必须引用要修改的索引:
var i2 = document.getElementById('my2').getElementsByTagName('i')[0];
您在这里还有一个额外的.
:i2..innerHTHML
。 除此之外,getElementsByTagName
返回一个数组,这是有意义的。 您的数组有一个成员,因此您可以例如执行以下操作:
i2[0].className = 'test'
i2[0].textContent = 'yap'
i2[0].innerHTML = 'what?'
这是你的小提琴。
您需要解决以下几点:
var i1 = document.querySelector('#my1 i'); //You want to return a single element, not all matches
i1.className = 'test';
i1.textContent = 'yep';
var i2 = document.getElementById('my2');
var i3 = i2.getElementsByTagName('i')[0]; //Added another var for readability, but you need to specify the first element of the returned array
i3.className = 'test'
i3.textContent = 'yap'
i3.innerHTML = 'what?'
https://jsfiddle.net/exmcw2uh/2/
相关文章:
- 如何自动将页码添加到HTML页面上的所有内部链接
- 使用jquery添加到表单内部表中的元素不会过帐
- Javascript 将类添加到元素内部的
- 如何遍历 d3 中的值内部数组并添加相应的子元素
- react-将图标添加到组件内部的标题中
- 如何避免重复记录为每个循环添加内部角度
- 内部 HTML 在添加多个文本框时擦除该值
- 内部 HTML 剥离动态添加的字符
- 从数组或对象添加选项值和内部 HTML
- Javascript:在内部站点中添加搜索功能
- 如何使用单击方法在元素内部添加单击方法
- 从动态添加的脚本标记中获取内部 HTML
- Javascript将ID添加到字符串内部的元素中
- 在phonegap JQM中动态创建的列表视图中添加li内部的按钮
- 从函数内部添加loadbar
- 在函数内部添加变量
- 从函数内部添加事件函数并传递元素时的奇怪行为
- 如何从数组中删除对象,并在其内部添加函数
- 从ajax调用内部添加到数组未定义
- 如何在Gojs中的节点内部添加href