2009-07-20 6 views
1

이것은 내가 원하는 임의의 일종입니다. 기본적으로 내 설정은 다음과 같습니다.자바 스크립트 jquery 중첩 된 속성을 잡아

<div class="classname"> 
    <h3> 
    <a class="anchor_classname" title="some_title">..</a> 
    </h3> 
</div> 

위의 HTML 세그먼트는 모든 기존 레코드에 대해 페이지에서 반복됩니다.

내가해야할 일은 Jquery를 사용하여 중첩 된 앵커 (즉, "some_title")에서 툴팁 텍스트를 가져 와서이 텍스트를 포함 div의 'title'속성으로 설정하고 싶습니다. 각 제목 텍스트가 고유 한 모든 레코드에 대해이 작업을 수행해야합니다. 표시된 설정으로이 작업이 가능합니까 아니면 레코드를 구별하기 위해 고유 한 식별자가 필요합니까? 누군가 jquery를 사용하여이를 수행하는 방법을 설명 할 수 있습니까? 감사.

업데이트 : 나는 그의 코드를 사용하여 다음과 같이 약간 변경 관리 다윗의 제안을 사용 :

$('a.anchor_classname').each(function() { 
     var title = $(this).attr("title"); //line 1 
     var div = this.parentNode.parentNode; //line 2 
     div.title = title; //line 3 
    }) 

을 나는 엄격하게 JQuery와 부모 같은 함수()와 ATTR를 사용하려면 라인 2와 3을 변환 할 수있는 방법을() . (그것은 그대로 작동하지만 준수를 위해 표준 jquery 함수를 사용하는 것이 더 나은 방법이라고 가정합니다). 이 방법으로

답변

2

복제 정보 접근성에 유해한 (또는 스크린 리더 사용자 적어도 자극) 될 가능성이 뭔가 나를 파업 및 제공하는 효과가 더 채우기 위해 h3h3을 채우기 위해 링크를 스타일링에 의해 달성 div.

jQuery('div.classname > h3 > a.anchor_classname').each(function() { 
    var title = this.title; 
    var div = this.parentNode.parentNode; 
    div.title = title; 
}) 

또는 느리게, 덜 효율적, jQuery를-곳 네이티브-DOM은--할 것입니다 방법 :

jQuery('div.classname > h3 > a.anchor_classname').each(function() { 
    var jq = jQuery(this); 
    var title = jq.attr('title'); 
    var div = jq.parent().parent(); 
    div.attr('title', title); 
}) 
+0

감사

이 검증되지 않은 코드가 일을 할 아마도 것, 말했다 이것은 효과가 있었다. parent()와 attr() 같은 표준 jquery 함수로이를 변환 할 수 있습니까? 나는 첫번째 줄을 다음과 같이 바꿨다 : var title = $ (this) .attr ("title"); 그리고 효과가있었습니다. 그러나 나는 지난 두 사람을 바꿀만한 성공을 거두지 못했습니다. – oym

+0

haha..love 풍자. 도움을 주셔서 감사합니다. 다른 사람이 나를 설득 할 수 없다면 빠른 DOM 접근 방식을 고수 할 수도 있습니다. – oym

관련 문제