2011-04-24 3 views
0

요소의 rel 값을 읽으려고합니다.

$('.input-default').ready(function() 
{ 
    $('.input-default').inputDefault($(this).attr('rel')); 
}); 

그러나 문제는 $ (this)가 어떻게 든 전체 HTML 문서를 참조한다는 것입니다. 왜? 어떻게 수정해야합니까?

답변

4

특정 요소의 .ready() 이벤트 에서 트리거하지 마십시오. 그 당시의 상황이 창이라고 생각합니다. 입력을 직접 참조하십시오.

$(document).ready(function() { var rel = $('.input-default:first').attr('rel'); //added :first to make sure you only get the rel of the first }); 

편집 귀하의 의견을 읽고 몇 가지 검색을 수행 한 후

, 난 당신이 input default 플러그인을 사용하고 깨달았다.

의 문서를 보면, 당신은 당신이

$(document).ready(function(){ 
    $('.input.input-default').inputDefault({defaultAttr: 'rel'}); 
}); 

내가 플러그인 코드에서 수행 방식을 호출 할 수 있는지 여부를 확실하지 않다 원하는 것을 얻을 다음을 수행하지만, 당신이 있다면 할 수 그 방법이 효과가 있고 당신이 수동으로 값을 설정하기를 원한다면 다음을 할 수 있습니다.

DOM 요소 컬렉션을 반복하려면 .each() 함수를 사용할 수 있습니다.

$(document).ready(function(){ 
    $('.input-default').each(function(){ 
     $(this).inputDefault($(this).attr('rel')); 
    }); 
}); 
+0

입력 필드의 기본값이 될 필요가있는 클래스 입력 - 기본값과 rel을 폼 요소에 제공 할 수 있어야합니다. – Thomas

+0

글쎄, 클래스는 여러 요소에 적용될 수 있으므로, 인스턴스가 많기 때문에'.val()'을 호출하거나 값을 얻지 못할 수 있습니다. ': first' 필터를 지우면, – JohnP

+0

= 1의 콜렉션을 얻을 것이고, 당신의 대답은 내 것이 훨씬 낫고, 더 간결합니다. –