簡體   English   中英

這個jQuery代碼有什么問題?

[英]what's wrong with this jQuery code?

我的以下代碼工作正常。

$(document).ready(function() {
        $('a.address').click(function() {
            $('#box').slideDown("slow");

            $.ajax({
            type: "POST",
              url: "details.php",
              success: function(html){              
                 $("#msg").html(html);
                } 
            });

        });
    });

但是以下沒有(在成功內部只改變了1行:),它沒有加載任何東西..只滑動#box,而#msg里面,但是不加載#address。

$(document).ready(function() {
        $('a.address').click(function() {
            $('#box').slideDown("slow"); 

            $.ajax({
            type: "POST",
              url: "details.php",
              success: function(html){
                $("#msg").html($(html).find('#address').html());
                } 
            });

        });
    });

The details.php is:


<div id="info">some text.</div>
    <div id="address">The address</div>

當你編寫$(html) ,你正在創建一個包含兩個<div>元素的jQuery對象。

在此對象上調用.find(...)搜索<div>元素的后代
由於兩個元素都沒有任何子元素,我永遠不會找到任何東西。

相反,你可以調用.filter()來搜索集合中的元素(但不是它們的后代)。

或者,您可以將返回的HTML包裝在新的<div>標記中,然后調用.find() 由於您的元素將成為包裝器<div>子元素,因此它們將由.find()找到。
不像.filter()這仍將如果服務器更改為返回工作<div>你正在尋找作為一個孩子。

jQuerys .load .load() 幫助方法允許您加載和插入頁面片段

$('a.address').click(function() {
    $('#box').slideDown("slow"); 

    $('#msg').load('details.php #address');
});

這可能就是你想要在這里實現的目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM