jquery - 在字符串中的任何位置查找模式?

时间:2010-07-27 12:46:06

标签: jquery pattern-matching selector

当涉及到选择器和模式时,我仍然有点困惑......基本上,我正在尝试找到输入项的父div,如果在其ID中的任何位置找到字符串,我想设置它没有显示。

之前我做过这样的事情就是这样做:

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>

4 个答案:

答案 0 :(得分:1)

attr用于设置元素的属性,因此您的行:

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

应该是:

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

改为使用css方法。

答案 1 :(得分:0)

如果你可以认为它总是

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

忘记检查id属性长度&gt; 0.

答案 2 :(得分:0)

在JavaScript中,您可以使用正则表达式在另一个字符串中查找字符串。

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

答案 3 :(得分:0)

您可以使用jQuery.closest()

$('input.rclass').cloest('.form-item').hide();