jQuery:获取对象内的元素

所以,我有这段代码:</ p>

  function  popAreaTree(){

var tree = $(“ol.tree”);
var list1 = tree.children('li');
var list2 = list1.children('ol')。children( 'li');

$(树).on('click',$(this).children('li')。children('a'),function(e,i){
console.log($(this).text());
$(this).parent('li')。toggleClass('open',300);
});

$ .ajax( {
url:'.. / admin / callbacks / jsonDataList.php',
data:{t:'zoneandarea'},
dataType:“json”,
async:false,
global:false,

success:function(j,status){
for(var i = 0; 1&lt; j.length; i ++){

var li = tree.append('&lt; li class =“zone” &gt;&lt; a href =“#”&gt;'+ j [i] .name +'&lt; / a&gt;&lt; / li&gt;');
var areas ='';
$ .each(j [ i] .areas,function(i,item){
区域+ ='&lt; li class =“area”data-area-uid =“'+ item.uid +'”&gt;'+ item.name +'&lt; / li&gt;';
});
$( 区域).insertAfter(li.closest( 'A')); //这是问题
}
}
});
}
</ code> </ pre>

它基本上只是创建了一个文件树。 ajax发布到一个php页面,该页面输出一个json数组,每个结果中还有一个数组。 它是这样的:</ p>

  array('name'=&gt; name,'uid'=&gt; uid,areas =&gt; array('name'=&gt; name  ,'uid'=&gt; uid))
</ code> </ pre>

我只需要知道如何在 a </ strong>标签内执行insertAfter li </ strong>对象。</ p>
</ div>

展开原文

原文

So, I've got this code:

function popAreaTree() {

        var tree = $("ol.tree");
        var list1 = tree.children('li');
        var list2 = list1.children('ol').children('li');


        $(tree).on('click', $(this).children('li').children('a'), function(e, i) {
            console.log($(this).text());
            $(this).parent('li').toggleClass('open', 300);
        });

        $.ajax({
            url: '../admin/callbacks/jsonDataList.php',
            data: {t: 'zoneandarea'},
            dataType:"json",
            async: false,
            global: false,
            success: function(j, status) {
                for(var i = 0;1 < j.length; i++) {

                    var li = tree.append('<li class="zone"><a href="#">'+j[i].name+'</a></li>');
                    var areas = '';
                    $.each(j[i].areas, function(i, item) {
                        areas += '<li class="area" data-area-uid="'+item.uid+'">'+item.name+'</li>';
                    });
                    $(areas).insertAfter(li.closest('a')); // This is the problem
                }
            }
        });
    }

It is just basically creating a file tree. The ajax posts to a php page that outputs a json array with one more array inside each result. It goes like this:

array('name'=>name, 'uid'=>uid, areas=>array('name'=>name, 'uid'=>uid))

I just need to know how to do an insertAfter on the a tag within the li object.

douning5041
douning5041 varli=tree.append('<liclass=“zone”><ahref="#">'+j[i].name+'</a></li>');在这里,li=树BTW,最近()正在寻找祖先,是你<li的祖先?
大约 7 年之前 回复

2个回答



您可以创建一个html字符串并将其附加到 tree </ code>对象:</ p>

var html ='&lt; li class =“zone”&gt;&lt; a href =“#”&gt;'+ j [i] .name +'&lt; / a&gt;';
$ .each(j [i] .areas,function(i,item){
html + ='&lt; li class =“area”data-area-uid =“'+ item.uid +'”&gt;'+ item.name +'&lt; / li&gt;';
});
html + ='&lt; / li&gt;'; //关闭第一个li元素

tree.append(html);
</ code> </ pre>

顺便说一句,您的问题必须与您最近的一起使用 </ code>,查找与选择器匹配的最近的父</ strong>。 您可能希望使用 children </ code>,它只搜索元素的直接子元素。</ p>
</ div>

展开原文

原文

You could just create an html string and append that to your tree object:

var html = '<li class="zone"><a href="#">'+j[i].name+'</a>';
$.each(j[i].areas, function(i, item) {
    html += '<li class="area" data-area-uid="'+item.uid+'">'+item.name+'</li>';
});
html += '</li>'; //close first li element

tree.append(html);

As an aside, your issue has to due with your usage of closest, which looks for the closest parent that matches the selector. You would want to use children which just searches through the direct children of the element.



您可以在里面查找锚点,然后使用 .after()</ code>:</ p>

  li.children('a')。after(areas); 
</ code> </ pre>

虽然在这种情况下你也可以使用< 代码> .append()</代码>:</ p>

 <代码> li.append(区域);  //这将落后&lt; a&gt; 
</ code> </ pre>
</ div>

展开原文

原文

You could look for the anchor inside and then use .after():

li.children('a').after(areas);

Although, in this case you could also just use .append():

li.append(areas); // this will go behind <a>

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问