jQuery - проверьте, существует ли DIV на внешней странице, затем, если это так, загрузите DIV, в противном случае загрузите другую

0

работая на пользовательской странице погоды для небольшой панели инструментов ops. getweather#.php сбрасывает информацию о погоде, которую я хочу, а затем index.php загружает определенные элементы по запросу с помощью jQuery.

поэтому - я пытаюсь получить jQuery, чтобы проверить, существует ли на внешней странице определенный DIV, и если да, то загрузите его, но если это не так, загрузите еще один DIV, который всегда будет существовать

основанный на других вопросах, которые я нашел здесь, я собрал этот код, думая, что это сработает:

<script>
    $(function(){
        if ($('getweather2.php?wx=1 #warning').is('*')) {
            $('#wxwarning').load('getweather2.php?wx=1 #warning');
        } else {
            $('#wxwarning').load('getweather2.php?wx=1 #nowarning');
        }
    });
</script>

к сожалению, это, похоже, не работает, кроме того, это приводит к сбою всех других функций jQuery.

Кажется, я не могу найти какие-либо примеры или что-то действительно, чтобы помочь мне заставить этот скрипт работать.

Спасибо.

Теги:
load

1 ответ

0
Лучший ответ

Вы должны фактически получить данные, прежде чем сможете проверить, существуют ли элементы или нет.
Вы не можете использовать load(), поскольку он вставляет данные напрямую, но это просто ярлык для $.get, поэтому вы можете использовать это вместо этого и проверить, существует ли этот элемент, и если он его вставляет, если не вставить другой элемент:

$.get('getweather2.php?wx=1', function(html) {
    var el = $('<div />').append(html);
    if ( el.find('#warning').length ) {
        $('#wxwarning').html(el.find('#warning'));
    }else{
        $('#wxwarning').html(el.find('#nowarning'));
    }
});
  • 0
    отлично, спасибо @adeneo! оно работает. Как правило, вы рекомендуете свой способ загрузки всего внешнего контента? или с помощью команды load() ?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню