2014-09-23 80 views
0

我怎麼能添加一些東西作爲一個div的nth child id爲'selected_panel'附加的東西作爲第n個孩子 - 如果獨生子女追加爲第一個孩子

- 作爲第n個子

- 如果沒有孩子作爲第一個孩子追加(簡單地預先安排)。

- 在「selected_pa​​nel」可能是從div任何的孩子 label也可能是一個span,(我不知道是什麼類型的HTML元素的將是孩子,所以我真的不能使用事情是這樣的:

$("#selected_panel div:nth-child(1)") //This looks only for children with type ''div'' 

我並不真正熟悉jQuery和我想用最'jQuery的「」的方式寫下來,我可以使用if/else語句,但我尋找的東西在jQuery語法中。

+0

您可以在這裏 http://api.jquery.com/nth-child-selector/ HTTP找到更多的信息://api.jquery。 com /?s = nth-child – 2014-09-23 07:01:00

+0

已經閱讀過,我懷疑我會花時間在沒有通讀的情況下嘗試提問。 – 2014-09-23 07:01:43

+0

http://jsfiddle.net/victor_007/Lp9kngp0/3/每個第三個孩子被選中是否它是div標籤跨度 – 2014-09-23 07:14:54

回答

1

創建插件:

$.fn.nthorfirst = function (path, i) { 
 
    var elems = this.find(path); 
 
    if (elems.length > i) return elems.eq(i); 
 
    else return this; 
 
} 
 

 
$('#selected_panel').nthorfirst('> *', 2).before("<div> Done! </div>");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id="selected_panel"> 
 
    <p>Lorem</p> 
 
    <div>Lipsum</div> 
 
    <a href="#"> Dolor </a> 
 
</div>

1

你可以試試這個:

JS:

$(document).ready(function() { 
    var e = $('<div>New Child</div>'); //New child to be added 
    var c = $('#selected_panel').children(); //gets the children of div 
    if (c.length) {       //if there are children inside the div 
     var l = c.length; 
     $('#selected_panel>*:nth-child(' + l + ')').after(e); 
    } else {        //if there is no child 
     $('#selected_panel').append(e); 
    } 
}); 

您可以根據您要添加新的子位置改變l值。

樣本HTML:

<div id="selected_panel"> 
    <div>AADsd</div> 
    <div>AADssdd</div> 
    <div>asdfAADsd</div> 
    <div>AADssdd</div> 
    <div>AADsdsd</div> <span>sdfsadfsa</span> 
<span>sert3dfsadfsa</span> 
<span>s457647dfsadfsa</span> 

    <p>er</p> 
</div> 

演示:http://jsfiddle.net/GCu2D/350/

1

如果有至少n-1元素,否則將在年底被插入這將插入一個元素作爲nth孩子。

var n = 7; 
var len = $("#selected_panel").children().length; 
var index = (len >= n) ? n-1 : len; 
$("#selected_panel").find(':nth-child(' + index + ')').after($('<div>bar</div>')); 

http://jsfiddle.net/jtr2wd7b/1/

+0

其中'n'是我想追加的位置? – 2014-09-23 07:04:19

+0

是的,沒錯。檢查更新的小提琴。 – 2014-09-23 07:07:05

1

您可以使用「:第n個孩子(1)`沒有任何標籤。

$("#selected_panel :nth-child(1)")