2010-07-27 76 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输入标签标准,并正确地关闭它:' N/A' – Hristo 2010-07-27 13:01:32

回答

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 2010-07-27 13:04:13

+0

@ J-P:是的,我做到了。 – 2010-07-27 13:06:07

0

您可以使用jQuery.closest()

$('input.rclass').cloest('.form-item').hide(); 
相关问题