2016-11-28 2 views
0

내 페이지 (JSBin)에 많은 popovers가 있습니다. 각 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되는 HTML을 반환합니다." 아무도 이것을 깨닫는 방법을 알고 있습니까?

+0

'for'를 사용하십시오. { html : true, content : function()} {for (var i = 0; i <3; i ++) { $ ('데이터 토글 ='popover '+ i +' "] ' { return $ ("# popover"+ i + "-html") .html(); } }); }' – Tushar

+0

나는 ... 그러나 popovers의 숫자를 알지 못하면 어떻게 될까? (여기서는'3'). 나는 단지 "모든 popovers에 대해"또는 "id가 ​​문자열'popover'로 시작하는 모든 popovers에 대해 ..." – SoftTimur

+2

$ ('[data-toggle^= "popover"]'). 길이를 말하고 싶습니다. ' – 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

'content' 함수가 나중에 실행될 경우 작동하지 않습니다. * ... * – nnnnnn