0

JQuery를 사용하여 Flexigrid 플러그인으로 작업 중입니다. 좋아, 그래서 두 span 요소와 div가, 그들은 flexigrid 제공하는 버튼에 대한 텍스트/표시 텍스트가 포함됩니다. 문제는 다른 텍스트를 추가하는 경우를 제외하고 해당 버튼에 ID를 추가 할 수있는 메커니즘이 없다는 것입니다.범위 내 텍스트 값 가져 오기

<div class="tdiv2> 
    <div class="fbutton"> 
     <div> 
      <span class="view" style="padding-left: 20px;">Add</span> 
     </div> 
    </div> 
    <div class="fbutton"> 
     <div> 
      <span class="view" style="padding-left: 20px;">Delete</span> 
     </div> 
    </div> 
</div> 

버튼 배열 방식입니다. 그래서 그 버튼을 onclick, 추가 및 삭제와 같은 범위 내에서 텍스트를 얻을. 이제 활성 버튼과 다른 버튼을 구별하기 위해 해당 범위에 클래스 태그를 추가하려고합니다.

그래서 나는 반환되는 텍스트와 일치하는 스팬 텍스트를 얻을 수 있다면 그 스팬에 클래스를 추가 할 수 있다고 생각했습니다.

하지만 난 단지 첫 번째 스팬의 텍스트가 아니라 두 번째를 얻고있다

alert($('.tDiv2 span').html()); 

을 수행 할 때. 누군가가 처음과 둘 다의 HTML을 가져 오는 것을 도와 줄 수 있을까요?

답변

3

는이>

$('.tDiv2 span').each(function(index, el) { alert($(el).html()); }); 
+0

안녕하세요, 코드를 시도 할 때이 오류가 발생합니다. "el.html은 함수가 아닙니다." – macha

+0

oops, 나는 그것을 바로 잡았습니다. – neebz

+0

그것은 여전히 ​​저에게 같은 오류를줍니다. 나는 jquery 문서를 보았다. 어느 것이 컬렉션 일까? 나는 콜백 함수가 될 것이라고 이해합니다. "jQuery.each (collection, callback (indexInArray, valueOfElement))" – macha

0

jQuery는 html이나 text와 같은 속성을 얻으려고하면 시리즈의 첫 번째 요소를 자동으로 선택합니다. 두 번째 (또는 번호) 시도 얻을 :

alert($('.tDiv2 span').eq(1).html()); //returns 2nd element's html content 

당신은 1

0

당신은 each 필요 시도에 대한 어떠한 0 기반 인덱스를 대체 할 수 있습니다.

$('.tDiv2 span')each(function(node){ alert(node.html()); });

그러나,이 방법은 스크린 리더 사용자에 대한 접근성 문제가 발생할 가능성이 있음을 지적하고 싶습니다. 어떤 이유로 든 버튼을 다시 만들어야하는 경우 ARIA 속성을 사용하면 시각 장애인 방문자가 제대로 작동하도록 할 수 있습니다.