2013-05-03 90 views
0

这似乎是非常简单的。我有一个文本框,我想根据是否有内容显示链接。在我document.ready我的代码设置为jQuery .show()不工作<span>标签

$(document).ready(function() { 
     $('#searchValue').change(function() { 
      if ($('#searchValue').val().length > 0) { 
       $('#home').show(); 
      } else { 
       $('#home').hide(); 
      } 
    }); 

,这里是我与我指的是链接ASP MVC视图部分。我希望每次在页面加载时显示跨度以外的所有内容。只有当文本框中有信息时,才会出现在span中的任何内容。

@Html.ActionLink("Create New", "Create") | 
    @Html.ActionLink("Export to Spreadsheet", "ExportToCsv") 
    <span class="home" style="display:none;"> 
    | @Html.ActionLink("Back to Index", "Index")  
    </span> 

我一直有和没有style="display:none;"属性尝试这样做,我不能得到.show().hide()火。我已经浏览了代码,可以看到doucment.ready中的条件正在起作用,然而,这部分代码已经到达。

+0

跨度包含的类属性不在家的ID。如果您将其更改为,那么您的代码将起作用,否则将您的jQuery代码从$(“#home”)更改为$(“。home”) – 2013-05-03 18:37:25

+0

使用if(!! $ (this).val())'而不是'if($('#searchValue').val().length> 0)'来简化该部分。 – 2013-05-03 18:42:32

回答

4

你需要类选择器而不是id selector,你有家庭作为范围类,而不是你的id分配家庭ID或使用class selector

变化

$('#home') 

$('.home') 

您的代码将

$(document).ready(function() { 
    $('#searchValue').change(function() { 
     if ($('#searchValue').val().length > 0) { 
      $('.home').show(); 
     } else { 
      $('.home').hide(); 
     } 
}); 
4

你打电话的家庭和我跨度ID实际上是班级。

更改为$('.home')

1

很简单:

$('#searchValue').change(function() { 
    if ($(this).val().length > 0) $('.home').show(); 
    else $('.home').hide(); 
});