2010-07-27 2 views
2

선택자와 패턴에 관해서는 여전히 약간 혼란 스럽습니다. 기본적으로 입력 항목의 부모 div를 찾고 문자열이 ID의 아무 곳에서나 발견되면이를 설정하려고합니다. 아무 것도 표시하지 마십시오. 나는 변수에 그렇게하는 방법을 잘, 아니에요jquery - 문자열 어디에서나 패턴을 찾으시겠습니까?

if($('div[id*=string]')) { $(this).attr('display','none'); } 

그러나 :

난 그냥 뭔가를 수행하여 전에이 짓을했는지?

이것은 지금까지 내가 가진로서, 그리고 나는 박히면서 ...

$('input.rclass').each(function() { 
    var myDiv = $(this).parent().parent(); 
    if($(myDiv... 
}); 

마크 업은 다음과 같습니다 : 당신이 추측 할 수있는 경우

<div id="edit-gci" class="form-item"> 
    <label for="editgci[0][foa][value]" class="option"> 
    <input type="radio" class="rclass" value="" name="editgci[0][foa][value]" id="editgci-0-value-string-idnum"> N/A 
    </label> 
</div> 
+0

이 답변으로 문제가 해결되지 않습니다,하지만 당신은 HTML 입력 태그에 대한 표준을 준수하고 올바르게 닫아야합니다 : '<입력 유형 = " id = "editgci-0-value-string-idnum"/> N/A' – Hristo

답변

1

attr은 요소의 속성을 설정하는 데 사용됩니다, 그래서 당신의 라인 :

if($('div[id*=string]')) { $(this).attr('display','none'); } 

은 다음과 같아야합니다

if($('div[id*=string]')) { $(this).css('display','none'); } 

사용 css 방법 대신.

0

항상있을 것입니다

$('input.rclass').each(function() { 
     var myDiv = $(this).parent().parent(); 
     if(myDiv.attr("id").length >0){ 
      $(myDiv).hide(); 
     } 
}); 

id 속성 길이> 0인지 잊어 버렸습니다.

0

JavaScript에서는 정규 표현식을 사용하여 다른 문자열 내의 문자열을 찾을 수 있습니다.

if(/string/.test($(myDiv).attr('id'))) { $(this).hide(); } 
+1

나는' $ (myDiv) .attr ('id')'또는'$ (myDiv) [0] .id'. – James

+0

@ J-P : 그렇습니다. –

0

사용할 수 jQuery.closest()

$('input.rclass').cloest('.form-item').hide(); 
관련 문제