2011-09-26 5 views
1

HTML에서 고유 ID를 사용하여 "div"를 만들었습니다. 이 "div"에는 더 많은 "div"가 있는데, 각각에는 문자열이 들어 있습니다. 예를 들어 : 내가 원하는 무엇jquery : 주어진 문자열이 포함 된 요소의 색인을 찾으십시오.

<div id="name"> 
    <div>A</div> 
    <div>B</div> 
</div> 

는, ID = "이름"과 "DIV"에서, "A"를 말할 문자열을 포함하는 "DIV"의 인덱스를 찾는 것입니다.

선택기 ": contains"는 .index()와 함께 사용해야하지만 올바른 구문을 알 수는 없다고 생각합니다. 이것은 내가 무엇을 시도했다입니다 :

var index = $("#name"):contains(A).index("div"); 

답변

2

는이

var index = $("#name>div:contains(A)").eq(0).index(); 

http://jsfiddle.net/GhPxD/1/

+0

네, 이제 작동합니다. 고마워요! 하지만 어쨌든 내가 다시 (jquery 아코디언을 사용하여) 개발하고있는 웹 페이지에서 이것을 사용할 때 이중 값을 얻었다. 임시 솔루션으로 2로 반환 된 값을 나누었습니다. – yongtw123

+0

'eq (0)'으로 시도해보십시오. 작동하지 않는 경우, 아코디언 위젯이 생성하는 추가 요소로 인해 발생하지 않는지 확인하십시오. –

4

난 당신이 식 이름을 가진 요소 내에서 선택 div:contains('A') 일치하는 요소를 찾을 수

var index = $('#name div:contains("A")').index(); 

을 원하는 생각합니다.

접두어가 : 인 선택기는 선택기 문자열 내에서 사용하기위한 것입니다. 대다수의 사용자가 대신 연결할 수있는 해당 jQuery 함수 (예 : :eq().eq)를 가지고 있지만 :contains() (함수를 .contains()은 텍스트를 보는 대신 다른 요소 내의 DOM 요소를 테스트 함)입니다.

+0

내가 jsfiddle를 사용하여 솔루션을했지만, 가지고 시도 -1. http://jsfiddle.net/GhPxD/16/ – yongtw123

+0

아, 네 말이 맞아.'.index()'는 자식보다는 현재 배열을 찾는다. @ilia가 올바른 대답을 했으므로 광산도 업데이트하고 있습니다. – nrabinowitz

관련 문제