我有这个私人作业。我想重新实现getElementsByClassName()。我正在使用jQuery-append来添加带有1个类或几个类的段落标记。
我的问题: 我正在使用className或getAttribute来查看它是否有类。如果是这样,只要它包含“targetHello”类,就将该段落元素推送到数组中。尝试在不使用RegExp的情况下执行此操作。
例如,
class="hello1 targetHello hello3"
谢谢!
答案 0 :(得分:0)
您可以使用split
并查看length
这样的内容。
function hasClassName(classNames, className) {
return classNames.split(className).length > 1;
}
var classNames = "hello1 targetHello hello3";
hasClassName(classNames, 'targetHello');
如果classNames.split(className).length
为1
,则该类不存在。如果它大于1
则存在。
答案 1 :(得分:-1)
使用该功能,您可能会得到误报。例如,如果属性类的值为“hello1targetHellohello3”,则它将返回true,并且此值不包含您要查找的类。您应该识别出孤立词,记住这些类是由空格分隔的单词。例如:
function hasClassName(classNames, className) {
return classNames.split(' ').indexOf(className) >= 0;
}
var classValue = 'hello1 targetHello hello3';
hasClassName(classValue, 'targetHello');
无论如何,我认为我误解了一些东西......你正在使用jQuery来追加内容,我不明白你为什么不使用它来获取你想要的类的元素。我想这是一种练习或者其他什么,对吗?