1

嗯,我有这个脚本,但它不起作用。

这都是关于这条线的:document.getElementById('thetest').addClass('superspecial');

一旦应该添加类(但不是),整个脚本就会退出......有人知道为什么吗?

4

2 回答 2

4

应该:

jQuery('#thetest').addClass('superspecial');

或者

document.getElementById('thetest').className += ' superspecial';

document.getElementById不返回 jQuery 元素。
这就是你得到has no method错误的原因。

于 2013-08-12T20:10:54.387 回答
1

我知道现在这是一篇旧帖子,但我自己遇到了它,我使用了一种以前没有命名的方法来解决它。

而不是使用

document.getElementById("name").className+='superspecial';

我用了

document.getElementById("name").classList.add('superspecial');

经过一些研究,这似乎是一种相当新的方法,除了最新版本之外,许多浏览器版本都不支持它。使用此功能的浏览器要求如下所述: https ://www.w3schools.com/jsref/prop_element_classlist.asp

我不知道这两种解决方案之间的确切区别,但在我看来,获取 classList 并使用现有函数添加它会是更好的选择。特别是因为 += 是一种将东西添加到彼此的通用方法,它并不总是必须按照您期望的方式工作。

于 2018-08-08T09:45:48.897 回答