我正在寻找一种方法将$.post()
的数据响应附加到调用它的li
的高度。
我知道它已经完成,但我找不到任何可读的内容。那么,有什么想法吗?
方案
列出item1
列出第2项
列出item3,点击此处:
* sublist item1
* sublist item2
* sublist item3
列出item4
我唯一的代码是工作$.post()
,我只是为了看到响应而做console.log(data)
。
好的,我希望通过$.post()
的回复来实现这样的结果:http://www.alistapart.com/d/horizdropdowns/horizontal.htm
答案 0 :(得分:1)
关于它看起来像什么的想法......
$('yourliclass').click(function(){
//do ajax
$.ajax({
.......
.......
success:function(data){ //data needs to be in json format
var htmlcontent = "";
htmlcontent = '<ul>';
for(var i=0;i<data.length;i++){
htmlcontent += '<li>'+data[i]['your_index']+'</li>';
}
htmlcontent += '</ul>';
}
$(this).appendTo(htmlcontent);
});
}
答案 1 :(得分:1)
试试这个
var data;
$(document).ready(function()
{
$(".list li").click(function()
{
$.post("filename.php",function(res)
{
data="<li>"+res+"</li>";
});
$(this).after(data);
});
});
<body>
<ul class="list">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
</ul>
</body>
答案 2 :(得分:1)
$('li.clickable').on('click', function() {
var list = $(this);
$.ajax({
url: 'url_to_script',
method: 'post',
success: function(res) {
var response = $(res); // assume that you response contains li tags i.e '<li>subitem 1</li>' and more
list.append(response); // append response to list that clicked
/* >> OR << */
// if you response contains data as array/field
$.each(res, function(index, data) {
list.append('<li>'+ data['some_text'] +'</li>'); // some_text is assumed property, you have something else
});
// ACCORDING TO YOUR COMMENT
var sublist = '<ul>';
$.each(res, function(index, data) {
sublist += '<li>'+ data['some_text'] +'</li>'; // some_text is assumed property, you have something else
});
sublist += '</ul>'; // now sublist is like <ul><li>...</li>....</ul>
list.append(sublist); // append the sublist to ul.clickable
}
});
});
注意:您必须制作一些CSS以改善外观