向a添加类的Javascript<;i>;元素内部
我在没有jquery的情况下做事情时遇到了一个可耻的问题,我正在尝试将一个类添加到向a添加类的Javascript<;i>;元素内部,javascript,Javascript,我在没有jquery的情况下做事情时遇到了一个可耻的问题,我正在尝试将一个类添加到元素的中,我知道使用jquery很容易做到这一点,但我在使用Vanilla Javascript时失败了: <span id='my1'> <i>...</i> </span> <span id='my2'> <i>...</i> </span> <script type="text/javascript"&g
元素的
中,我知道使用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>
...
...
var i1=document.querySelectorAll('my1i');
i1.className='test'
i1.textContent='yep'
var i2=document.getElementById('my2').getElementsByTagName('i'))
i2.className='test'
i2.textContent='yap'
i2..innerHTML='什么?'
小提琴:
谢谢
。getElementsByTagName('i')
返回一个集合,因此您必须引用要修改的索引:
var i2 = document.getElementById('my2').getElementsByTagName('i')[0];
.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?'
.这里有一个额外的
: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?'
您需要解决以下几件事:
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?'