我只想删除一些元素,而不使用像jQuery这样的任何框架。 首先,我尝试使用for(... in ...)而不是将ist更改为for(var i ...)但现在我发现即使是直接选择也不起作用。
使用jQuery可以正常工作。但它是......让我们说解释jQuery的作用。
我的剧本:
$(".photo").on('click', function() {
this.src = this.src.replace(/thumb/g, 'original');
var img = new Image();
img.onload = function() {
alert(this.naturalWidth);
}
img.src = this.src;
}
控制台日志:
[109] <script>
[110] var hidden = document.getElementsByClassName('hidden');
[111] console.log('Class "hidden" size: ' + hidden.length);
[112] console.log(hidden[0].tagName);
[113] console.log(hidden[1].tagName);
[114]
[115] hidden[0].className = '';
[116] hidden[1].className = '';
[117] </script>
为什么我可以获取Class "hidden" size: 2
H1
FORM
Uncaught TypeError: Cannot set property 'className' of undefined(anonymous function) @ login.html:116
的tagName,但不能更改其className,而是hidden[1]
。
当我将订单更改为
时hidden[0]
所以[115] hidden[1].className = '';
[116] hidden[0].className = '';
在hidden[1]
工作之前。
当第一个选定元素被更改并且元素的hidden[0]
变小时,var hidden = document.getElementsByClassName('hidden');
将会第二次运行。
答案 0 :(得分:3)
Error in results[i, j] <- colSums(A[i:(i + 2), 1:2] * B) :
number of items to replace is not a multiple of replacement length
返回 live NodeList,这意味着它包含的元素会随着DOM的变化而变化。您从该集合中的元素中删除相关的类名称,该元素将自动从集合中删除。
出于这个原因,你应该向后迭代元素:
moment.locale('en',
{
week: {
dow: 1 // Monday is the first day of the week
}
});
在第一次迭代中,集合将包含2个元素(在索引0和1处)。您从索引1处的元素中删除该类,并从集合中删除该元素。在下一次迭代中,集合中只剩下一个元素,但由于.startOf('week')
已递减为0,因此您可以正确引用它。
修改强>
根据评论中的建议,您也可以反复修改startOf('isoweek')
:
getElementsByClassName