2009-12-09 7 views
1

У меня есть следующий код:Учитывая родительский элемент, тестирование для определенных дочерних элементов

<table id="myTable"> 
    <th>Date</th> 
    <th>Action</th> 
</table> 

и

var $table = $('#myTable'); 

Там есть условие в моих JS, где я буду прилагаемой строки таблицы (<tr>) в эту таблицу, но я хочу написать функцию, чтобы проверить, добавлены ли они или нет.

Так что я ищу логическое выражение, которое возвращает true, если таблица $ содержит любые теги <tr>, а false - в противном случае. Предварительные ответы заставили меня поверить, что мне нужно использовать селектор jQuery ': has'.

ответ

2

if (jQuery('table').find('tr').size() > 0) { 
    // has element 
} 
 
+0

Собственно, это не совсем верно, оглядываясь назад. Размер - это функция, и после нее должны быть открыты/закрыты парсеры. Итак: 'if (jQuery ('table'). Find ('tr'). Size()> 0) {' –

+0

О да, моя ошибка. Это опечатка и была бы поймана в консоли JS error. Обновлено с исправлением. – Mark

4

Вы можете использовать: has() селектор. Вы можете использовать любой селектор внутри скобки. Например,: has (tr) проверяет, содержит ли элемент какие-либо элементы tr.

+0

@Matti, спасибо за быстрый ответ. Можете ли вы опубликовать пример этого? –

+0

The: has (tr) был примером. Чтобы уточнить, чтобы проверить, соответствует ли определенный объект jQuery, вы можете сделать myObject.is («: has (tr)»). Чтобы выбрать любые таблицы, содержащие строки, которые вы должны сделать $ («table: has (tr)») и т. Д. –

+0

Так звучит, что я буду использовать $ ("table"). Is (": has (tr)")? Мне нужно логическое выражение, которое возвращает true, если в таблице есть элементов, а false в противном случае ... Спасибо за ваши ответы –

1

Вы могли бы сделать что-то вроде:

jQuery("table").find("certainTr").size > 1 

или use the :has selector

Я не 100% уверен, что я понял ваш вопрос ... дайте мне знать, если я уезжаю

+0

@marcgg, я просто пытаюсь проверить, есть ли у родительского элемента определенный тег под ним. Я думаю, что: селектор - это правильный путь. Можете ли вы отправить пример кода с помощью этого метода? –

1

Если все, что вы пытаетесь сделать, это вернуть true, если ваша таблица содержит любые строки и false, если ваша таблица не содержит ни одной строки, то вы можете попробовать это ...

return ($("#myTable tr").length > 0); 

Если вы собираетесь иметь строку заголовка, хотя это находится в таблице в любое время вы можете захотеть изменить 0 на 1 в приведенном выше сценарии ,

 Смежные вопросы

  • Нет связанных вопросов^_^