Как поместить эту динамическую переменную Jquery в это условие - PullRequest
0 голосов
/ 23 октября 2010
      $(".mylink").live('click', function(){
    var linkid = $(this).attr('id');
    if($("#TBL").find('tbody > '+ #linkid ).css("display")=="inline"){
        // Do Somerthing 
     }
     });

Я должен поместить динамическую переменную "linkid" в вышеприведенное, если условие iam ищет интерпретируемое значение Я получаю "недопустимый символ ошибки. Как я могу это сделать

Ответы [ 2 ]

1 голос
/ 23 октября 2010

Вы можете просто сделать это:

$(".mylink").live('click', function() {
  if ($(this).css("display")=="inline") {
    // Do Somerthing 
  }
});

Поскольку идентификаторы должны быть уникальными, вы можете просто использовать this, у вас уже должен быть единственный элемент с этим идентификатором.Если у вас есть несколько элементов с одинаковым идентификатором, это еще одна проблема, требующая решения, возможно, вам следует использовать, например, href="#id" и $(this.hash) в обработчике.

1 голос
/ 23 октября 2010

Должно быть просто:

.find("tbody > #" + linkid);

Вы можете поместить знак # непосредственно в Javascript.Поскольку #linkid не является допустимым Javascript.

Чтобы быть особенно осторожным, вы можете захотеть использовать регулярное выражение для экранирования символов CSS3, находящихся в идентификаторе.См. здесь для получения дополнительной информации о том, какие символы необходимо экранировать.

ОБНОВЛЕНИЕ

Ответ Ника правильный и подходит для вашей ситуации.Я не заметил, что вы пытаетесь использовать идентификатор того же элемента, на который вы нажали.this относится к элементу, сгенерировавшему клик, поэтому вам не придется снова захватывать его через jQuery.

В целом, то, что я написал выше, будет работать, если вы захотите использовать переменную, содержащую идентификатор, в строке селектора jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...