2012-12-13 3 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 만, 클래스 '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(); 알림 (t); \t var t = $ ("div"). children (". article_text") 텍스트 ('안녕하세요 jquery'에서); 이 기능은 article_text의 각 사본에 대한 액세스 권한이 없다는 점을 제외하고는 작동합니다. – Chris

+0

이 저에게 효과가 있습니다. 추측 하시겠습니까? [jfiddle] (http://jsfiddle.net/fY6SU/68/) – Anton

+0

그냥 알아 냈어. 여기에 내 코드가 있지만 eelegant는 아니지만 작동합니다. $ ("div"). children (". article_text"). eq (3) .css ("color", "red"); 시각 보조 장치로 CSS를 넣습니다. 도움을 주셔서 감사합니다. – Chris

0

해결 방법 클래스 이름을 사용합니다. $ (". article_text") 여기 What I need is to find the index with .eq90 for each of the child divs.

+0

수업의 이름을 바꾸는 것이 자녀의 색인을 찾는 것과 무슨 관련이 있습니까? – Chris

0

예제 바이올린에서 클래스 이름에 따라 이름을 변경 고려, 마지막 DIV 선택 :

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

형제에 대한 색인()을 얻는 방법을 알 수있었습니다.

다음은 내가 찾던 코드입니다.

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

CSS 선택기는 작동 확인을위한 시각 보조 기능입니다.

나를 도와 주신 모든 분들께 감사드립니다.