2011-10-01 6 views
2

미안 사람은 나는이 내 코드를 변경했습니다 해요 :jQuery를 사용하여 증분 ID로 범위 텍스트를 가져 오는 방법은 무엇입니까?

<table border="1"> 
<?php 
$a = array('apple','banana','grapes','pineapple'); 
for ($x=0;$x<=3;$x++) 
{ 
?> 
    <tr> 
     <td><div class='fruit' ><?php echo $a[$x]; ?></div></td> 
     <td><a href='#' class='viewbutton'>View</a></td> 
    </tr> 
<?php 
} 
?>  
</table> 

이제 내 문제는 내가 <div> 내부의 텍스트를 얻을 수있는 방법인가? 시도했습니다 $(".viewbutton").click(function() { alert ($('#div_debit').text() ); }); 첫 번째 값만 반환합니다. 배열에서 연속 된 값을 얻으려면 어떻게해야합니까? 이드를 사용하고 있습니까?

+0

왜 클래스 선택기를 사용할 수 없습니까? –

답변

1

내가 아는 한 모든 숫자 값 (예 : [0-9] 또는 \d, 정규식의 경우)과 일치시킬 CSS 또는 jQuery 관련 선택기가 없습니다. 틀 렸으면 고쳐줘!

그러나 각 : <span>에 "과일"등급을 부여하면 span.fruit으로 액세스 할 수 있습니다. 그러면 each()으로 반복 할 수있는 배열이 반환됩니다. this은 해당 기능 내의 현재 항목으로 설정되므로 원하는 ID를 확인할 수 있습니다. 엘리멘트 연속적 번째 경우

$('.fruit').each(function(){ 
    // this.id will be your numeric ID of the current item 
}); 

또한, (예를 들어 1, 2, 3, 그리고 2, 1, 3)에는 :nth-child-pseudo-selector<span>들 중 하나를 액세스하기 위해 사용할 수있다.

이 모든 것이 효과가 없을 경우; 예 : 클래스 .fruit을 다른 곳에서도 사용해야하는 경우, 마지막으로 생각할 수있는 옵션은 JavaScript의 요소를 수동으로 반복하는 것입니다.

for(var x = 0; x <= 3; x++) { 
    var e = $('#'+x); 
    // Do something with the element; or add it to an array of all the elements 
} 

편집 : 당신이 페이지에있을 것입니다 얼마나 많은 항목 모르겠지만, 당신은 모든 숫자 ID를 일치 시키려면, 당신은 다음을 사용할 수 있습니다.

$('*').each(function(){ 
    if(this.id.match(/\d+/)) { 
     // do something with an element which has a numeric ID 
    } 
}); 

물론, 더 빠를 가능성이 있기 때문에 얼마나 많은 항목이 있는지 알고 있다면 위 예제를 사용하는 것이 더 바람직합니다.

+0

Sir 예를 들어, 텍스트 값을 가져 오려고합니다. 바나나 사과. 코드에 증분 ID가 있지만 jQuery를 사용하여 동일한 클래스가있는 경우 어떻게 "바나나"또는 "사과"텍스트를 가져올 수 있습니까? 고맙습니다. –

+0

'innerHTML'을 사용해보십시오. 또는 답안의 첫 번째 예제의 함수 내에서'$ (this)'에 jQuery의'.text()'를 사용합니다. – anroesti

0

아마 잘못했을 수 있습니다. 이런 식으로 id를 사용하지 말고 접두어를 붙이십시오.

첫 번째 텍스트 범위를 가져 오려면 $ ('span.fruit # 1') .text()를 사용할 수 있습니다. id를 지정하지 않으면 $ ('span.fruit : nth-child (1)'). text()를 사용할 수 있습니다.

관련 문제