繁体   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