如何将此动态Jquery变量置于此条件中

时间:2010-10-22 20:58:59

标签: jquery jquery-selectors

      $(".mylink").live('click', function(){
    var linkid = $(this).attr('id');
    if($("#TBL").find('tbody > '+ #linkid ).css("display")=="inline"){
        // Do Somerthing 
     }
     });

我必须将动态变量“linkid”放入上面的if条件iam中寻找具有解释的值 我得到“无效的字符错误。我这样做

2 个答案:

答案 0 :(得分:1)

应该如此简单:

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

您可以将#符号直接放入Javascript中。因为#linkid无效Javascript。

要特别小心,您可能希望使用正则表达式来转义ID中的CSS3字符。有关需要转义哪些字符的详细信息,请参阅here

<强>更新

尼克的答案是正确的,适合您的情况。我没注意到你试图使用你点击的同一个元素的id。 this指的是生成点击的元素,因此您不必通过jQuery再次获取它。

一般来说,如果你想在jQuery选择器字符串中使用包含id的变量,我上面写的内容将会起作用。

答案 1 :(得分:1)

你可以这样做:

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

由于ID 应该是唯一的,您可以使用this,您应该已经拥有唯一具有该ID的元素。如果您有多个具有相同ID的元素是另一个需要解决的问题,那么您可能应该使用href="#id",并在处理程序中使用$(this.hash)