2012-05-15 34 views
8

我想将HTML添加到特定ID的div中。如何选择它?特定ID内的特定类的jQuery选择器

<div id="1"> 
<div class="c"></div> 
    <div class="c"></div> 
    <div class="c"></div> 
</div> 


<div id="2"> 
<div class="c"></div> 
    <div class="c"> TO APPEND INSIDE THIS DIV </div> 
    <div class="c"></div> 
</div> 

<div id="3"> 
<div class="c"></div> 
    <div class="c"></div> 
    <div class="c"></div> 
</div> 

我使用

$(data).appendTo("#"+id).find(".c"); 

但它给我的问题,因为追加不会在div在div内而外

回答

9

你可以试试,

$('div#3 div.c').eq(1).append('<div class="new">NEW</div>'); 

$('<div class="new">NEW</div>').appendTo($('div#4 .c:eq(1)')); 

你可以试试:

$(data).appendTo($('#'+ id +' .c')); 

更多的特异性可以使用的任何具体div.c指数;

$(data).appendTo($('#'+ id +' .c:eq(2)')); // append to third `div.c` 

更新:appendTo()只是$()包裹的目的地选择,它为我工作。

备注请勿仅使用数字标识。 IT ID被禁止。更多信息READ

+0

系统 - 为什么禁止? – Yahoo

+1

@AdiMathur我在我的答案中分享了一个链接,阅读它。链接是http://stackoverflow.com/questions/7987636/why-cant-i-have-a-numeric-value-as-the-id-of-an-element –

+0

我使用 $(数据)。 appendTo( “#” + ID).find( “C”); 但它给我的问题,因为追加不是在里面的div,但在div div – Yahoo

0
$('#2 .c').html('<p>Stuff, junk, crud</p>'); 
2

ID属性不能以数字开头。如果您将id属性更改为item-2之类的内容,则可以使用以下内容:

var html = '<div></div>'; 
$('#item-2 .c:eq(1)').append(html); 
+0

ID实际上是一个变量。 – Yahoo

+0

我正在使用 $(data).appendTo(“#”+ id).find(“。c“); 但它给我的问题,因为追加是不是在div内部但是在div外部 – Yahoo

+0

这实际上并没有多大意义,'.append()'会将html添加到任何匹配的元素在你的情况下,你应该有3个匹配的元素,因为你有3个具有类'c'的元素(在具有指定id的元素中)。假设你只想追加到第二个元素, .c:eq(1)'。因此,'$(data).appendTo('#'+ id).find('。c:eq(1)')'应该可以工作。也许你可以创建一个[jsfiddle] (http://jsfiddle.net/)如果这仍然不适合你? – jmar777

1

此作品。

$('#2 .c:eq(1)').html("<p>Hello</p>"); 

编辑:

​$('<p>Hello!</p>').appendTo($('#2 .c:eq(1)'));​ 

FIDDLE

+0

我正在使用 $(data).appendTo(“#”+ id).find(“。c”); 但它给我的问题,因为追加是不是在div内但在div – Yahoo

+0

然后,那么做:$(data).appendTo ($('#2 .c:eq(1)')); –

+0

看编辑中的小提琴。 –