2013-04-04 6 views
3

В настоящее время я использую файл .js с командами jQuery для поиска определенных элементов XML-файла. Мне удалось собрать все данные, которые я хочу легко, однако мне сложно свести презентацию.Проверка правильности выбора селекторов в jQuery

Я использую тот же сценарий .js для загрузки нескольких XML-файлов. Данные собираются в html-документе и в виде списка. Вот код:

 $upgrade1 = $(xml).find("upgrades").eq(0).next(); 
     $upgrade2 = $(xml).find("upgrades").eq(1).next(); 
     $upgrade3 = $(xml).find("upgrades").eq(2).next(); 
     $("#upgrades").append($upgrade1.text() + "<li>" + $upgrade2.text() + "</li><li>" + $upgrade3.text() + "</li>"); 

Теперь, как вы можете увидеть первый селекторы составить текст им нужно, и затем добавляют к <li class ="upgrades">. Теперь проблема в том, что некоторые .xml-файлы будут иметь только 1 или 2 обновления, а не все 3. Однако функция все равно будет вычерчивать пустые точки пули из-за элементов <li> в .append()

Самое простое решение это использование инструкции if, однако я не могу найти нигде, как вы бы проверили, если селектор пуст? Есть только упоминания о проверке элементов формы, но это не полезно для меня. Возможно, способ проверить пустую строку или строку менее 1 символа? Я не знаю ...

У кого-нибудь есть идеи?

+0

Возможно, посмотрите [здесь:] (http://stackoverflow.com/questions/6813227/how-do-i-check-if-an-html-element-is-empty-using-jquery) –

ответ

6

Использование length.

if ($('whatever').length == 0) { 
    // It's empty 
} 
2

Вы также можете использовать свой селектор неявно, вызывая каждое из ваших запросов.

$("whatever").each(function() { 
    var ctl = $(this); 
    ctl.text("bob jones"); 
}); 

Таким образом, вы автоматически отбрасываете экземпляры, в которых вы не получите никаких результатов.

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