JQuery - найти шаблон в любом месте строки? - PullRequest
2 голосов
/ 27 июля 2010

Я все еще немного растерялся, когда дело доходит до селекторов и шаблонов ... По сути, я пытаюсь найти родительский div для входного элемента, и, если где-то в его идентификаторе найдена строка, я хочу установить еене отображать ни одного.

Я делал это раньше, просто делая что-то вроде:

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 ]

1 голос
/ 27 июля 2010

attr используется для установки атрибутов элемента, поэтому ваша строка:

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

Должно быть:

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

Вместо этого используйте метод css.

0 голосов
/ 27 июля 2010

Вы можете использовать jQuery.closest ()

$('input.rclass').cloest('.form-item').hide();
0 голосов
/ 27 июля 2010

В JavaScript вы можете использовать регулярное выражение для поиска строки в другой строке.

if(/string/.test($(myDiv).attr('id'))) { $(this).hide(); }
0 голосов
/ 27 июля 2010

Если вы можете предположить, что это всегда будет

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

Забыл проверить, если длина атрибута id> 0.

...