使用元素的ID来获取它的两个类之一? JS

时间:2017-09-02 03:06:10

标签: javascript

假设你有一个带有ID和两个类的元素(让我们称它们为A类和B类)。你知道ID,并希望获得共享A类但不是B类的所有其他元素。并非所有这些元素都有两个类名,其中一些只有A类。使用Javascript,我该如何确定使用原始元素的ID调用它时,我得到了正确的类名,这样我就得到了A类元素,而不是B类?

1 个答案:

答案 0 :(得分:1)

var element = document.getElementById( 'test' );

/* to get all classes of the element */
var classList = element.className.split(' '); 

/* 
 * Say class A is in classList[0] and class B in classList[1],
 * select all elements which have class classList[0] but not class classList[1] */
var classToShow = document.querySelectorAll('.'+classList[0]+':not(.'+classList[1]+')' );

/* loop through the selected list to log each element in console */
for( var i = 0; i < classToShow.length; i++ ) {
        console.log(classToShow[i]);
}

希望这会有所帮助。 :)

或者更简单:

document.querySelectorAll('.A:not(.B)');