jQuery: проверьте, существует ли div с определенным именем класса
Использование jQuery Я программно создаю связку div
следующим образом:
<div class="mydivclass" id="myid1">Some Text1</div>
<div class="mydivclass" id="myid2">Some Text2</div>
Где-то в моем коде мне нужно определить, существуют ли эти DIV. Имя класса для divs совпадает с идентификатором для каждого div. Любая идея, как их обнаружить с помощью jQuery?
Ответы
Ответ 1
Это можно упростить, проверив первый объект, который возвращается из JQuery, например:
if ($(".mydivclass")[0]){
// Do something if class exists
} else {
// Do something if class does not exist
}
В этом случае, если в первом ([0]
) индексе есть истинное значение, тогда предположим, что класс существует.
Редактировать 04/10/2013: Я создал тестовый пример jsperf здесь.
Ответ 2
Вы можете использовать size()
, но jQuery рекомендует использовать длину, чтобы избежать накладных расходов на другой вызов функции:
$('div.mydivclass').length
Итак:
// since length is zero, it evaluates to false
if ($('div.mydivclass').length) {
http://api.jquery.com/size/
http://api.jquery.com/length/
UPDATE
В выбранном ответе используется перфекционный тест, но он немного ошибочен, так как он также включает в себя выбор элементов как часть перфоратора, который не является тем, что тестируется здесь. Вот обновленный перфекционный тест:
http://jsperf.com/check-if-div-exists/3
Мой первый запуск теста показывает, что поиск свойств быстрее, чем поиск индекса, хотя ИМО это довольно незначительно. Я по-прежнему предпочитаю использовать длину, поскольку для меня больше смысла в отношении кода, а не более сложного условия.
Ответ 3
Без jQuery:
Нативный JavaScript всегда будет быстрее. В этом случае: (пример)
if (document.querySelector('.mydivclass') !== null) {
// .. it exists
}
Если вы хотите проверить, содержит ли родительский элемент другой элемент с определенным классом, вы можете использовать одно из следующих. (пример)
var parent = document.querySelector('.parent');
if (parent.querySelector('.child') !== null) {
// .. it exists as a child
}
В качестве альтернативы вы можете использовать метод .contains()
для родительского элемента. (пример)
var parent = document.querySelector('.parent'),
child = document.querySelector('.child');
if (parent.contains(child)) {
// .. it exists as a child
}
.. и, наконец, если вы хотите проверить, содержит ли данный элемент только определенный класс, используйте:
if (el.classList.contains(className)) {
// .. el contains the class
}
Ответ 4
$('div').hasClass('mydivclass')// Returns true if the class exist.
Ответ 5
Вот решение без использования JQuery
var hasClass = element.classList.contains('class name to search');
// hasClass is boolean
if(hasClass === true)
{
// Class exists
}
ссылка ссылка
Ответ 6
Это довольно просто...
if ($('.mydivclass').length > 0) {
//do something
}
Ответ 7
Для проверки элементов div
явно:
if( $('div.mydivclass').length ){...}
Ответ 8
Простой код приведен ниже:
if ($('.mydivclass').length > 0) {
//Things to do if class exist
}
Чтобы скрыть div с идентификатором лица:
if ($('#'+given_id+'.mydivclass').length > 0) {
//Things to do if class exist
}
Ответ 9
Вот несколько способов:
1. if($("div").hasClass("mydivclass")){
//Your code
//It returns true if any div has 'mydivclass' name. It is a based on the class name
}
2. if($("#myid1").hasClass("mydivclass")){
//Your code
// It returns true if specific div(myid1) has this class "mydivclass" name.
// It is a based on the specific div id's.
}
3. if($("div[class='mydivclass']").length > 0){
//Your code
// It returns all the divs whose class name is "mydivclass"
// and it length would be greater than one.
}
Мы можем использовать любой из способов, определенных abobe, исходя из требований.
Ответ 10
if ($(".mydivclass").size()){
// code here
}
Метод size()
просто возвращает количество элементов, которые выбирает селектор jQuery - в этом случае количество элементов с классом mydivclass
. Если он возвращает 0, выражение является ложным, и поэтому его нет, и если он возвращает любое другое число, div должны существовать.
Ответ 11
проверить, существует ли div с определенным классом
if ($(".mydivclass").length > 0) //it exists
{
}
Ответ 12
if($(".myClass")[0] != undefined){
// it exists
}else{
// does not exist
}
Ответ 13
var x = document.getElementsByClassName("class name");
if (x[0]) {
alert('has');
} else {
alert('no has');
}
Ответ 14
Лучший способ в Javascript:
if (document.getElementsByClassName("search-box").length > 0) {
// do something
}
Ответ 15
В Jquery вы можете использовать как это.
if ($(".className")[0]){
// Do something if class exists
} else {
// Do something if class does not exist
}
С помощью JavaScript
if (document.getElementsByClassName("className").length > 0) {
// Do something if class exists
}else{
// Do something if class does not exist
}
Ответ 16
Попробуйте это:
if($("#myid1").hasClass("mydivclass")){//Do any thing}
Ответ 17
Используйте это для поиска по всей странице
if($('*').hasClass('mydivclass')){
// Do Stuff
}
Ответ 18
Вот очень примерное решение для проверки класса (hasClass) в Javascript:
const mydivclass = document.querySelector('.mydivclass');
// if 'hasClass' is exist on 'mydivclass'
if(mydivclass.classList.contains('hasClass')) {
// do something if 'hasClass' is exist.
}