【问题标题】:jquery html() function display the content in a full page rather than inside a divjquery html() 函数以整页而不是在 div 内显示内容
【发布时间】:2012-09-14 12:33:57
【问题描述】:

我正在尝试获取以前的 html 并再次将其加载到这样的 div 中:

$("#start_val").change(function(){


     var script = $("#search_result_cont").html();
     $("#search_result_cont").empty();
     $("#search_result_cont").html(script);

});

首先我试图将 search_result_cont 内部 html 放入脚本变量 然后我使用 empty() 函数将 search_result_cont div 设为空 然后我试图再次将相同的 html 插入到 search_result_cont 中。但是当我这样做时,html开始以整页而不是在search_result_cont div中显示

这就是 searchresult_cont 所拥有的

<div class="search_result_cont" id="search_result_cont">
<script language="javascript">

var offers = <?php echo $jsonencoded;?>;
var node = offers.offer;
var resultpage = parseInt(node.length) / 10;
var result_start = document.getElementById('start_val').value;
var result_limit = parseInt(result_start) + 9;



 for(var i=result_start;i<=result_limit;i++)
 {
    document.write("<div class='result_box'><div class='result_left_area'><div class='result_title'>"+node[i].name+"<div class='result_stars'></div></div><div class='result_pic'><div class='show_image'></div><img src='"+node[i].image_url+"' style='height:100%; width:100%;' /></div><div class='result_icons_cont'><div class='share_icon' title='Share'></div><div class='information_icon' title='information'></div><div class='review_icon' title='Reviews'></div><div class='miles_icon' title='View Location' ></div></div><!--result_icons_cont ends--><div class='result_links_cont'><div class='result_link'>Website 1<span>"+node[i].currency+" "+node[i].price_no_vat+"</span></div></div><div class='view_all_prices'>View all prices from 12 websites <span style='font-size:20px; color:#32ccfe;'>&raquo;</span></div></div><div class='result_best_site'><div class='best_site'><img src='images/hotels/267_mx_bg.png' /></div><div class='round_corner_btn' onclick='window.open="+node[i].offer_url+"'></div></div><!--result_best_site ends --><div class='information_cont' id='share_info'>Shares: 6</div><!--information_cont share_info ends--><div class='information_cont' id='information_info'>Hotel Address:- "+node[i].address+","+node[i].city+"<br />Website:- <a href='"+node[i].offer_url+"'>Link</a><br />About:- "+node[i].description+"</div><!--information_cont information_info ends--><div class='information_cont' id='review_info'><input type='hidden' id='review_value' value='' /></div><!--information_cont review_info ends--><input type='hidden' id='lonlat' value='20.63536,476.98787' /><div class='information_cont' id='miles_info'></div><!--information_cont miles_info ends--><input type='hidden' id='picture_count' value='' /><input type='hidden' id='picture_url' value='' /><div class='information_cont' id='images_info'></div><!--information_cont images_info ends--><div class='information_close' title='close'></div></div><!--result_box ends here-->");
   }
    document.write("<div class='pagination_btn_cont'>");

for(var page = 1;page<=resultpage;page++)
{
      document.write("<div class='pagination_btn'>"+page+"</div>");
    }
    document.write("</div><!--pagination_btn_cont ends-->");

    </script>


 </div><!--search_result_cont ends here-->

【问题讨论】:

  • 为什么?想要达到什么目的?
  • 我已经在这个 div 中有一个 javascript,它显示了 jason 值,因为我正在显示 1-10 的结果,并且为了显示下一个 11-20 的结果,我需要刷新该代码,这样就可以了将相同的脚本放入 php 文件中,在那里我传递了起始值和相同的 json 代码,以便 javascript 可以读取 jason 代码并开始从我想要的任何地方显示结果
  • 这我也是这样做的,我创建了一个名为#start_val 的隐藏文本框,当它的值被改变时,这件事就会完成 var script = $("#search_result_cont").html (); $("#search_result_cont").empty(); $("#search_result_cont").html(脚本);但这是在整页中显示结果。它删除所有以前的内容并开始仅显示我在 search_result_cont 中的内容

标签: jquery html css


【解决方案1】:
$('div').load(window.history.back());

http://api.jquery.com/load/ && How to get the previous page URL using JavaScript?

对我来说似乎是最简单的方法。我不是 100% 完全符合您的意思,但就在另一个页面中加载页面而言,ajax 加载(或 iframe,但没有人使用 iframe)是要走的路。如果你只想要内页的一部分,你可以用更多的js截断页面。或者,更好的是,如果脚本不是面向事件的,那么首先在服务器端执行所有操作。


编辑:啊,好吧

我知道了。

将值发送到服务器

$("#start_val").change(function(){
  startnumber = $(this).val();
  $.ajax({
     type:'Head',
     async: false,
     data:{
            startnumber: startnumber
        },
     url: queryPage,
     success: function(data){
                 $("#search_result_cont").html(data); //No need to empty and all that                                           
            }                                           
  });

});

然后你的 php 'queryPage'

     <?php
         $startNumber =$_POST['startnumber'];
         for ( $i = startNumber; $i < startNumber + 10; $i++){
              // generate results with query
              // add query info in string to send
         }
         // echo said string
     ?>

编辑:其他编辑

JSON 用于数据传输。虽然可以查询原始 JSON,但

Is there a query language for JSON?

大多数时候你只是引用你想要的对象和数据。所以假设你的 JSON 文件看起来像

{
  "item": [
      {"description": "ipod",
       "cost": "200"}
  ],
  "item": [
      {"description": "iphone",
       "cost": "500"}
  ], 
 ...

在 JavaScript 中

你可以

var script = "";
var offers = <?php echo $jsonencoded;?>;
$("#start_val").change(function(){
  startnumber = $(this).val();
  for ( i = startnumber; i < (startnumber + 10); i++;){
      script .= "<div class ='description'>"; 
      script .= offers.item[i].description;
      script .= "<div>";
  }
  $("#search_result_cont").html(script);

});

哪个会写:

<div class ='description'> ipod </div> <div class ='description'> iphone </div>...

在#search_result_cont

它看起来和你的有点相似,这让我再次对整个问题感到困惑。

我不确定我是否可以再回复,但我希望我能帮到你&&祝你好运。

【讨论】:

  • 这样,它也保留了#start_val 文本框的值,结果再次从1 到10 开始显示。我希望当#start_val 的值发生变化时,结果从该数字开始显示。就像我将文本框的值更改为 20 结果从第 20 位开始
  • 已更新。从数据库中重新生成结果,不要依赖前一页。
  • 我没有使用我自己的数据库,我使用的是我从外部源获取的 xml,并且我转换为 jsoncode,如果我再次发送请求,我将显示 jason 代码,因此需要更多时间
  • 这里我也有 json 代码,如何将其发布到 ajax 函数?
猜你喜欢
  • 2010-10-14
  • 2012-02-26
  • 1970-01-01
  • 2015-05-27
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-01
相关资源
最近更新 更多