簡體   English   中英

jQuery Ajax如何告訴jquery在哪里附加從Ajax調用返回的html數據

[英]jQuery Ajax how to tell jquery where to append the html data returned from Ajax call

我有兩個具有相同結構的ul列表:

<ul id="list1">
    <li id="inv-1">
        <label>Item name</label>
        <select>
           <option selected="selected"> value="1">Value 1</option>
        </select>
    </li>
    //...
    <li id="inv-2">
        <label>Item name</label>
        <select>
           <option selected="selected"> value="1">Value 1</option>
        </select>
    </li>
 </ul>
<ul id="list2">
    <li id="inv-44">
        <label>Item name</label>
        <select>
           <option selected="selected"> value="0">Value 0</option>
        </select>
    </li>
    //...
    <li id="inv-55">
        <label>Item name</label>
        <select>
           <option selected="selected"> value="0">Value 0</option>
        </select>
    </li>
 </ul>

它們看起來都一樣但有不同的ID。 在列表1中,我有選擇選項> 0的所有li。在第二個列表中,我選擇了選項== 0的所有li。

我可以在列表中添加更多項目,按下彈出一個花式框的按鈕,詢問我新項目的新名稱和所選選項的值。 在將新項目包含到數據庫之后,我需要將新項目附加到正確的列表中。

我的jQuery函數是這樣的:

$(".btn.invi").fancybox({
  afterClose : function() {
    var nombre=$('#addinvi').val();
    $.ajax({
    type: "POST",
    url: "ajax-invi.php",
    dataType: "html",
    data: "id="+idboda+"&name="+name+"&value="+value",
    success: function(data) {
      $('ul#list1').append(data);//How do I know where to append??
    }
    }); 
  }
});

如何根據所選選項的值告知成功函數的附加位置?

現在從ajax-invi.php返回的數據是這樣的(在用php設置值到mysql數據庫之后)

    <li id="inv-22">
        <label>Item name</label>
        <select>
           <option selected="selected"> value="1">Value 1</option>
        </select>
    </li>

ID在頁面中是唯一的。 您有2個具有相同ID的列表項。

<ul id="list1">
<li id="inv-1">
    <label>Item name</label>
    <select>
       <option selected="selected"> value="1">Value 1</option>
    </select>
</li>
//...
<li id="inv-2"> //Note the change in ID
    <label>Item name</label>
    <select>
       <option selected="selected"> value="1">Value 1</option>
    </select>
</li>

完成此更改后,在您的成功功能中

$(".btn.invi").fancybox({
    afterClose : function() {
    var nombre=$('#addinvi').val();
    $.ajax({
        type: "POST",
        url: "ajax-invi.php",
        dataType: "html",
        data: "id="+idboda+"&name="+name+"&value="+value,
        success: function(data) {
            //perfom your tests here
            //based on your result do either of the following
            $('ul#invlist').find('#inv-1').append(data);
            $('ul#invlist').find('#inv-2').append(data);
        }
     }); 

});

它會像你說的那樣追加。 在id為“#invlist”的ul中。

如果你想更具體地追加它我認為你需要查看數據是什么,並在將其附加到某個地方之前將其轉換為結構。

暫無
暫無

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

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