2016-11-28 135 views
0

我在我的頁面有很多popovers(JSBin),每個data-toggle都鏈接到一個html div。現在是由下面的腳本來實現:簡化JQuery代碼

<script> 
    $('[data-toggle="popover0"]').popover({ 
    html: true, 
    content: function() { 
    return $("#popover0-html").html() 
    }}); 

    $('[data-toggle="popover1"]').popover({ 
    html: true, 
    content: function() { 
    return $("#popover1-html").html() 
    }});  

    $('[data-toggle="popover2"]').popover({ 
    html: true, 
    content: function() { 
    return $("#popover2-html").html() 
    }}); 
</script> 

我想簡單地說,上面的代碼「爲所有的數據切換與ID,我們返回id爲ID + 的HTML」。有誰知道如何實現這一點?

+0

使用'for'。 (var i = 0; i <3; i ++){('[data-toggle ='popover'+ i +'「')')。popover({ html:true, content:function() {(「#popover」+ i +「-html」)。html(); } }); }' – Tushar

+0

我明白了......但是如果我不知道彈出的數量(即這裏的'3')怎麼辦。我只想說「對於所有的popovers」,或者「對於所有ID以字符串popover開始的pop ...」 – SoftTimur

+2

'$('[data-toggle^='popover']')。length ' – Tushar

回答

2

的一個選項是:

$('[data-toggle]').popover({ 
    html: true, 
    content: function() { 
     var id = "#" + this.getAttribute('data-toggle') + "-html"; 
     return $(id).html(); 
    } 
}); 

上述腳本使用data-toggle屬性的值,用於選擇目標元素。它適用於1個或許多元素。

1
<script> 
    for (var i=0;i<3;i++) { 
     var selector = '[data-toggle="popover'+ i +'"]'; 
     var popover = '#popover' + i +'-html'; 
     $(selector).popover({ 
     html: true, 
     content: function() { 
     return $(popover).html() 
     }}); 
    } 
</script> 
+0

如果內容功能在稍後執行,這將不起作用。 – nnnnnn