2011-01-05 2 views
0

이것은 html 파일입니다.하드 코딩 된 호출을 피하고 동일한 클래스 이름을 가진 div에서 동일한 결과를 얻는 방법

<div class="pageNavPosition"></div> 
<table></table> 
<div class="pageNavPosition"></div> 
<script> 
showPageNave('pager','pageNavPosition'); 
</script> 

이 코드는 js 파일에 있습니다.

this.showPageNav = function(pagerName, divname) { 
    var pagerHtml = ['<a href="#" class="prev" onclick="' + pagerName + '.prev();"> &lt Prev </a> ']; 
    for (var page = 1; page <= this.pages; page++){ 
      pagerHtml.push('<a href="#" class="'+ page +'"onclick="' + pagerName + '.showPage(' + page + ');">' + page + '</a> '); 
    } 
    pagerHtml.push('<a href="#" class="next" onclick="'+pagerName+'.next();"> Next &gt;</a>');     
    $("."+divname).append(pagerHtml.join(""));  
    if(this.pages > 9){ 
      $(".pageNavPosition a:lt(" + this.endMask + "):gt("+this.buffer+")") .css("display","none").hide();         
      $('<a class="dotline" >.....</a>').insertAfter($(".pageNavPosition a:eq(" + Math.ceil(this.pages/2) + ")"));               
    }          
} 

내가 원하는 것은 테이블의 상단과 하단 모두에서 1,2, ....., 9,10입니다. 이 위의 div 테이블에 대한 div 작동하지 않는 bottom.i (하드 코드 된) $(".pageNavPosition 대신 $("."+divname 및 .each() 사용하여 시도했지만 성공하지 못했습니다. 모든 아이디어를 환영합니다.

답변

0

나는 그것을 jsfi에서 시도했습니다. ddle : http://www.jsfiddle.net/jeXBh/

두 div 모두에서 작동합니다. (코드를 약간 단순화했는데 나중에 html을 변경하는 대신 루프에서 점을 만드는 것이 더 좋습니다.)

+0

이 경우 4 ~ 8 범위의 페이지가 전혀 추가되지 않습니다.이 경우 나에게 방해가 될 수 있습니다. 나중에 프런트 엔드 페이지 매김을 구현하는 것으로 표시됩니다. – stackover

+0

아, 죄송합니다. 다음은 업데이트 된 버전입니다. http://www.jsfiddle.net/jeXBh/2/ – Andy

+0

감사합니다. Andy가 작동했습니다. – stackover

0

div 태그를 닫으시겠습니까?

$(document).ready(function(){ 
    $(".page").html("My html code"); 
    });  


<div class="page"> </div> 
    <div class="MyContent"> 
bla bla bla 
</div> 
    <div class="page"> </div> 
+0

$ (document) .ready (function() {} at을 사용하고 있지 않습니다. 모두 – stackover

+0

$ (document) .ready (function() {}은 필수 항목이 아니며 이미 완료된 것처럼 div 뒤에 js를 추가하면됩니다. –

0

각 당신을 위해 작동합니다 ....하지만 난 당신이 어떤 범위 지정 문제를 받고있을 수 있다고 생각하려고 :

if(this.pages > 9){ 
    var that = this; 
    $("." + divname).each(function() { 
     var initial = $(this).find("a:eq(" + Math.ceil(that.pages/2) + ")"); 
     $(this).find("a:lt(" + that.endMask + "):gt("+that.buffer+")") 
      .hide(); 
     $('<a class="dotline" >.....</a>') 
      .insertAfter(initial); 
    }); 
} 

을 어떤 경우에이 방법을 나에게 조금 복잡하게 보입니다. 여러분은 하나의 앤디처럼 접근을 시도 할 수 있습니다 ...

+0

$ ("."+ divname) .append (pagerHtml.join (""));) 나를 위해 실제 문제를 사용하지 마십시오 .each() 실제 문제가있는 경우 $ (". pageNavPosition a : lt ("+ this.endMask + ") : gt ("+ this.buffer + ")") .css ("display", "none"). 숨기기(); $ ('.....') .insertAfter ($ (". pageNavPosition a : eq ("+ Math.ceil (this.pages/2) + ")")); – stackover

+0

출력은 1,2,3 ... 9.10과 같습니다. 다음은 결과를 보여주는 표입니다. 1,2,3,4,5,6,7,8,9,10, 다음 – stackover

+0

혼란을 가져서 죄송합니다. 편집을 확인해 주시고 두 div에 같은 링크 집합을 표시합니다 – Jaime

관련 문제