2010-01-08 2 views
0

물론 jQuery와이 문제를 일으키는 이해 부족이 아니라 내 능력이 부족한 경우를 대비하여이 태그 내에 "Acme"텍스트를 반환하는 방법을 알려주시겠습니까?JQuery 자체적으로 작동하지 않습니다

<div class="grid-56" id="1005" style="border:solid 1px lightgray;"> 
    <div class="grid-20 bold"> 
     <a href="#" class="id_select_company" id="company_name_dialog"> 
      Acme 
     </a> 
    </div> 
</div> 

이것은 작동하지 않습니다!

var company_name = $("#" + id).children($("#company_name_dialog")).html(); 

<a href="#" class="id_select_company" id="company_name_dialog"> 
    Acme 
</a> 

내가 앵커 태그, 텍스트 만하지 않으 생산하고 있습니다.

+0

나는 해결책 .. 이걸 발견 문제는 : children ($ ("# company_name_dialog")) - 아이들 ("# company_name_dialog")에 있어야했습니다. - st00pid되고 있습니다 :) 모두에게 감사드립니다! – Samuurai

+0

id가 "company_name_dialog"인 요소를 하나만 가질 수 있음을 기억하십시오. 동일한 모양의 다른 요소가있는 목록에있을 수 있습니다. – Jamiec

+0

고유 ID를 먼저 선택한 다음 드릴 다운하여 ID를 선택합니다. 효과가 있지만 나쁜 습관입니까? 그러면 어떻게해야합니까? $ ("# company_name_dialog")'와'$ ("# company_name_dialog")'가 스타일에 사용되지 않기 때문에 클래스를 사용할 수 없다. (!) – Samuurai

답변

5

사용 find()는 :

var company_name = $("#" + id).find("#company_name_dialog").html(); 

너무 children()와 함께 작동해야하지만 당신은 그것을에서의 jQuery 객체를 통과하지해야하지만, 오히려이 경우 '#company_name_dialog' 표현식이다.

html() 또는 text()을 사용하면 아무런 HTML이없는 <a>의 내부를 선택하는 것처럼 중요하지 않습니다. text()은 내용에서 HTML 마크 업을 제거하기 때문에 결과는 두 경우 모두 동일합니다. 원래 코드와 함께 text()을 사용하면 효과가 있었지만 해결 방법이었을 것이며 실제 문제가 무엇인지 알지 못했을 것입니다.

$("#" + id).children($("#company_name_dialog")).text(); 
+1

동일 그러면 뭔가가 심각하게 ** 문서에 문제가 있습니다! – slebetman

+0

실제로 구문을 변경하고 find를 사용해야했습니다. - 고마워. – Samuurai

2

,

var company_name = $('#company_name_dialog').text(); 
3

이 (id 속성의가 HTML 문서에 고유해야합니다 특히 이후)보다 직접적으로 뭔가 시도 : 다음 .text() 기능을 물론

관련 문제