输入的搜索数据传到处理分页功能的js中的时候,其中包含__$$()的部分就显示有“NULL为空或不是对象”的错误。
不知道是不是因为通过javascript传递数据的方式有局限性的关系,不太明白问题出在哪里...主要代码:
搜索页:
 <script>function TransData()
  {
 /*******transport data through jQuery and Url.*******/
  var searchData= $("#txtkw").val();
  window.open("testDeliver.php?searchData="+searchData); }
</script>
<p>
        <input id="txtkw" type="text" value="" />
        <input id="Button1" type="button" value="提交" onclick="TransData();" />
    </p>
 
目标页:
<script>
function query_get(){ 
var querystr = window.location.href.split("?")
return querystr[1];

function GetSearch(){
var gets = query_get();
var gets_array = gets.split("&");
for (var i=0; i<gets_array.length;i++)   
{var getvar = gets_array[i].split('='); 
}
return getvar[1];

var os = new ObjSearch(); 
function Init(){
os.kw = GetSearch();  }
Init();
os.search();</script> 
<div class="list"><div id="content"></div>
<div id="pager">
<div id="total"></div><div id="pagelist"></div></div>
</div>
 
paginate.js搜索部分的代码:
function ObjSearch()
{this.kw = '';
this.displayId = '';    
this.search = function()
{
OutputHtml(this);
}
this.searchCpcj= function()
{   
var jsonObj = new Array();
var kw = this.kw;
$(vCpcj.cjpage).each(function(index,content){     
if(content.cm.indexOf(kw)!=-1)
{                   
jsonObj.push({"cm":content.cm,"pagen":content.pagen});                  
}
});
return jsonObj;

}
分页部分代码(有报错):
function __$$(id){return document.getElementById(id);}
function GotoPage(num){
Page = num;
OutputHtml(os);

var PageSize = 20;
var Page = 1; 
function OutputHtml(){
var vobj = arguments[0];
var siteList = '';       
siteList = os.searchCpcj();
var obj = eval(siteList); 
var sites = obj;
var Pages = Math.floor((sites.length - 1) / PageSize) + 1; 
if(Page < 1)Page = 1;  //如果当前页码小于1
if(Page > Pages)Page = Pages; //如果当前页码大于总数
var Temp = "";
var BeginNO = (Page - 1) * PageSize + 1; 
var EndNO = Page * PageSize; 
if(EndNO > sites.length) EndNO = sites.length;
if(EndNO == 0) BeginNO = 0;
if(!(Page <= Pages)) Page = Pages; /***这里__$$("total")的有“NULL为空或不是对象”的错误
__$$("total").innerHTML = "总页数:<strong class='f90'>" + sites.length + "</strong>&nbsp;&nbsp;显示:<strong class='f90'>" + BeginNO + "-" + EndNO + "</strong>";
if(Page > 1 && Page !== 1){Temp ="<a href='javascript:void(0)' onclick='GotoPage(1)'>&lt;&lt;第一页</a> <a href='javascript:void(0)' onclick='GotoPage(" + (Page - 1) + ")'>上一页</a>&nbsp;"}else{Temp = "&lt;&lt;第一页 上一页&nbsp;"};
var PageFrontSum = 3;
var PageBackSum = 3;
var PageFront = PageFrontSum - (Page - 1);
var PageBack = PageBackSum - (Pages - Page);
if(PageFront > 0 && PageBack < 0)PageBackSum += PageFront;
if(PageBack > 0 && PageFront < 0)PageFrontSum += PageBack;
var PageFrontBegin = Page - PageFrontSum;
if(PageFrontBegin < 1)PageFrontBegin = 1;
var PageFrontEnd = Page + PageBackSum;
if(PageFrontEnd > Pages)PageFrontEnd = Pages;
if(PageFrontBegin != 1) Temp += '<a href="javascript:void(0)" onclick="GotoPage(' + (Page - 10) + ')" title="前10页">..</a>';
for(var i = PageFrontBegin;i < Page;i ++){
Temp += " <a href='javascript:void(0)' onclick='GotoPage(" + i + ")'>" + i + "</a>";
}
Temp += " <strong class='f90'>" + Page + "</strong>";
for(var i = Page + 1;i <= PageFrontEnd;i ++){
Temp += " <a href='javascript:void(0)' onclick='GotoPage(" + i + ")'>" + i + "</a>";
}
if(PageFrontEnd != Pages) Temp += " <a href='javascript:void(0)' onclick='GotoPage(" + (Page + 10) + ")' title='后10页'>..</a>";
if(Page != Pages){Temp += "&nbsp;&nbsp;<a href='javascript:void(0)' onclick='GotoPage(" + (Page + 1) + ");'>下一页</a> <a href='javascript:void(0)' onclick='GotoPage(" + Pages + ")'>最末页&gt;&gt;</a>"}else{Temp += "&nbsp;&nbsp;下一页 最末页&gt;&gt;"}
__$$("pagelist").innerHTML = Temp;
if(EndNO == 0){
__$$("content").innerHTML = "<h1>没有数据</h1>"; /***这里有“NULL为空或不是对象”的错误
return;
}
var html = "";
for(var i = BeginNO - 1;i < EndNO;i ++){
html += "<a href='#' rel='book' title=" +sites[i].cm+ ">";      
html += "<p class='url'><span>" +sites[i].cm+ " |  "+sites[i].pagen +"</span></p></a>";     
}__$$("content").innerHTML = html;

解决方案 »

  1.   


    <div class="list"><div id="content"></div>
    <div id="pager">
    <div id="total"></div><div id="pagelist"></div></div>
    </div>
    <!----调换位置,DOM对象放上面,有可能数据返回了dom对象还没生成导致null引用,放下面就没问题了---->
    <script>
    function query_get(){ 
    var querystr = window.location.href.split("?")
    return querystr[1];

    function GetSearch(){
    var gets = query_get();
    var gets_array = gets.split("&");
    for (var i=0; i<gets_array.length;i++)   
    {var getvar = gets_array[i].split('='); 
    }
    return getvar[1];

    var os = new ObjSearch(); 
    function Init(){
    os.kw = GetSearch();  }
    Init();
    os.search();</script>