Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向a添加类的Javascript<;i>;元素内部_Javascript - Fatal编程技术网

向a添加类的Javascript<;i>;元素内部

向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的情况下做事情时遇到了一个可耻的问题,我正在尝试将一个类添加到
元素的
中,我知道使用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?'