Как проверить несуществующие объекты в jQuery

Другой вариант может перезаписать страницу Woocommerce для одного продукта.

add_filter ('template_include', 'locate_template', 30);

публичная функция locate_template ($ template) {

        $pre_template = $template;
         if ( is_single() && 'product' == get_post_type() )
        {   

            $template = locate_template( array( 'woocommerce/single-product.php' ) );

            if ( ! $template ) {
                global $post;
                $product_id = $post->ID;

                if( isset( $product_id ) && !empty( $product_id ) && $product_id == 231 ) {

                    $template = YOUR_DIR_PATH.'woocommerce/customized_temp.php';
                }
                else{
                    return $pre_template;
                }
            }
        }
        return $template;
    }

После этого вы можете создать custom_temp.php и затем просто перезапишите файл single_product.php (и можете легко удалить кнопку add_to_cart)

С помощью приведенного выше кода вы можете легко переопределить любой шаблон в вашем случае:

Пожалуйста, посетите ниже путь: Woocommerce> шаблоны> один продукт> добавить в корзину> simple.php

165
задан lorem monkey 10 August 2012 в 08:17
поделиться

5 ответов

Проверьте jQuery FAQ...

можно использовать свойство длины набора jQuery, возвращенного селектором:

if ( $('#myDiv').length ){}
247
ответ дан Pang 23 November 2019 в 21:07
поделиться

$ jQuery () функция всегда возвращает не нулевое значение - средние элементы соответствовали Вам селектор cretaria. Если элемент не был найден, он возвратит пустой массив. Таким образом, Ваш код будет выглядеть примерно так -

if ($("#btext" + i).length){
        //alert($("#btext" + i).text());
    $("#btext" + i).text("Branch " + i);
}
12
ответ дан cchana 23 November 2019 в 21:07
поделиться

Функция поиска возвращает массив соответствия элементам. Вы могли проверить, является ли длина нулем. Обратите внимание на изменения, чтобы только искать элементы однажды и снова использовать результаты по мере необходимости.

var elem = $("#btext" + i);
if (elem.length != 0) {
   elem.text("Branch " + i);
}

кроме того, имейте Вас попробованный просто использование текстовой функции - если никакой элемент не будет существовать, то это ничего не сделает.

$("#btext" + i).text("Branch " + i);
13
ответ дан tvanfosson 23 November 2019 в 21:07
поделиться
if ( $('#whatever')[0] ) {...}

объект jQuery, который возвращается всеми собственными методами jQuery, НЕ является массивом, это - объект со многими свойствами; один из них являющийся свойством "длины". Можно также проверить на размер () или добраться (0) или добраться () - 'добираются (0)' работы то же как доступ к первому элементу, т.е. $ (элемент) [0]

3
ответ дан James 23 November 2019 в 21:07
поделиться
if (typeof($("#btext" + i)) == 'object'){
    $("#btext" + i).text("Branch " + i);
}
-4
ответ дан 23 November 2019 в 21:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: