2012-12-13 51 views
0

這是問題所在;我有一個包含子div的div,我似乎無法訪問子div。我需要的是爲每個子div找到帶有.eq90的索引。jquery:我如何找到具有相同類別的子div的索引

下面是生成父級的代碼。

function makeSmallBlockdiv() 
{ 
var smallBlock = $('<div class="SmallBlock EditBlock"></div>').appendTo("#canvas"); 
smallBlock.draggable({containment: "#canvas", scroll: false, grid: [10, 10]}, {cursor: "move", cursorAt: {top: 125, left: 150}}) 
smallBlock.append('<div class="article_title EditBlock fontCenter fontBold font24">Article Title</div>') 
smallBlock.append('<div class="article_Image"><img style="width: 250px;" src="<? echo $image1 ?>"></div>') 
smallBlock.append('<div class=" article_text font14"><? echo substr($article_text, 0, 200) ?></div>') 
} 

此功能可以根據需要經常調用以創建更多的父div。 什麼到目前爲止,我已經試過如下:

$(".article_text").click(function() { 
    alert("Index: " + $(this).index()); 
}); 

我已經在改變()準備功能包裹着這一點。此代碼來自我在這裏找到的小提琴http://jsfiddle.net/fY6SU/48/

小提琴代碼完美地工作,但我什麼都不做。當我用螢火蟲查看我的html時,我可以看到div正確創建了gettig。我很難過,這並不意味着我剛剛開始使用jQuery。

任何建議將不勝感激。

感謝

克里斯

+2

發佈您的*非工作* HTML和JavaScript,而不是一個工程的例子 –

+0

這是我的代碼。我只是使用小提琴代碼作爲我自己的代碼,並更改類名稱。 – Chris

回答

2
$(".article_text").click(function() { 
    alert("Index: " + $(this).index()); 
}); 

的選擇只能選擇類的article_text',而你生成HTML只包含一個DIV與類「article_text」,所以解決方案是增加一個類與同名的div或使用多選擇器,如下所示:

$(".article_text, .article_Image, .article_title, .SmallBlock").click(function() { 
    alert("Index: " + $(this).index()); 
}); 
+0

剛剛嘗試了你的建議,沒有發生任何事情。下面是一些我用來測試article_text類的代碼。$(「div」)。children(「。article_text」).css(「color」,「red」); var t = $(「div」)。children(「。article_text」)。html(); alert(t); ();});}}}};}}};}}} var t = $(「div」)。children(「。article_text」)。 這有效,但我無法訪問article_text的每個副本。 – Chris

+0

適合我,即時猜測這是你想要的? [jfiddle](http://jsfiddle.net/fY6SU/68/) – Anton

+0

只是想通了。這是我的代碼,不是很好,但它的工作原理。 $(「div」)。children(「。article_text」)。eq(3).css(「color」,「red」); 我把css放在一個視覺幫助中 感謝您的幫助。 – Chris

0

您的解決方案位於您的類名中。 $( 「article_text」)只選擇最後一個div,並考慮在例如撥弄更名爲每類名

+0

改變我的課程名稱與查找孩子的指數有什麼關係? – Chris

0

What I need is to find the index with .eq90 for each of the child divs.

這裏:

var ninetyChildren = new Array(); //create an array to hold the children 
$(".parent").each(function() { //loop through each parent 
    var ninety = $(this).children().eq(89).text(); //get index of 90 - eq starts with 0 
    ninetyChildren.push(ninety); //add 90th index to array 
}); 

$.each(ninetyChildren, function(i, data){ //loop through 90th indexes 
alert(i +" "+ data); //alert each 90th index 
}); 
​ 

希望這是你想要的。 Mock Demo

0

我能弄清楚如何得到兄弟姐妹的index()。

這是我用來找到它們的代碼。

$("div").children(".article_text").eq(3).css("color", "red"); 

css選擇器只是作爲一個視覺輔助工具來確認它的工作。

謝謝所有幫助我的人。

相關問題