我怎样才能以聪明的方式重构这一点

时间:2018-04-18 07:21:17

标签: javascript jquery html

所以基本上我有一个代码来查找div并向它们附加一个iframe,但是我把它们作为一个开头只用if语句,任何想法我怎么能重构它们,尝试了一些其他的 - 如果是,但他们没有'工作。代码如下所示:

if ($('.similar-products')) {                                       
    $('.similarproducts').append(iframe_html);
} 

if ($('.partial--product')){
    $('.partial--product').append(iframe_html);
}

if ($('.product-page')){
    $('div.product-page').append(iframe_html);
}

if($('#section-product-page')){
   $('#section-product-page').append(iframe_html);
}
//needs fix
if($('.swatch-product-id-*')){
   $('.swatch-product-id-*').append(iframe_html);
}

if($('.product__tabs')){
   $('.product__tabs').append(iframe_html);
}
if($('.main-content-wrapper')){
   $('.main-content-wrapper').append(iframe_html);
}

if($('#shopify-section-product-description-bottom-template')){
   $('#shopify-section-product-description-bottom-template').append(iframe_html);
}
if($('.product-details-inline')){
   $('.product-details-inline').append(iframe_html);
}

if($('.social-footer')){
   $('.social-footer').prepend(iframe_html);
}
if($('.section-related-products')){
   $('.section-related-products').append(iframe_html);
}

if($('.product-details')){
   $('.product-details').append(iframe_html);
}

2 个答案:

答案 0 :(得分:4)

我认为你在这里使用jQuery。如果是这种情况,拥有if块是没有意义的。因为jQuery查找匹配的选择器并执行函数中指定的任务。如果没有找到给定选择器的元素,则将忽略例程而不会出现错误。所以,有像

这样的东西
if ($('.similar-products')) {                                       
    $('.similarproducts').append(iframe_html);
}

完全不同
$('.similarproducts').append(iframe_html);

此外,如果要附加的<iframe>对所有人都相同,请考虑对选择器进行分组。所以它会像

$('.similarproducts, .partial--product' /* Rest of the selectors */).append(iframe_html);

答案 1 :(得分:0)

您可以使用Switch case语句而不是if和else,因为如果if else服务器将检查每个if和else条件,但是在切换的情况下它将直接跳过相关的case块。所以它最大化了性能