2013-06-06 63 views
0

我的Jscript/Jquery无法正常工作。我可以提醒但我不能让我的div切换。有人可以向我解释为什么请吗?我的代码如下。如果它很重要,我正在使用JSP。jquery切换不起作用

我的JavaScript

$(window).ready(function(){ 
    $(".moreButtonClass").click(function(e){ 
     var id = this.id; 
     var cleanid = id.replace(/[^\d]/g, ""); 
     var dog = "post" + cleanid; 
     alert(dog); 
     $(dog).toggle(); 
    }); 
}); 

我的HTML

<div id="content"> 
    <h1>Site Update Log:</h1> 
<% for(int i = 0; i<2; i++){ %> 
    <div class="blogPost" id="postGroup<%= i %>"> 
     <div>The ID is :<%out.print(indexModel.miniBlogConnector.GetID(i));%></div> 
     <div>The DATE is :<%out.print(indexModel.miniBlogConnector.GetDate(i));%></div> 
     <div>The AUTHOR is :<%out.print(indexModel.miniBlogConnector.GetAuthor(i));%></div> 
     <div>The MINIPOST is :<%out.print(indexModel.miniBlogConnector.GetShortPost(i));%></div> 
     <div class="MainPost" id="post<%=i%>">The POST is :<%out.print(indexModel.miniBlogConnector.GetPost(i));%></div> 
     <button type="button" class="moreButtonClass" id="moreButton<%=i%>">more</button> 
    </div> 
<% } %> 
</div> <!-- end #content --> 

我的CSS

.MainPost { 
    display:none; 
} 

谁能请解释我为什么可以提醒狗,并得到正确的变量名。但是当我尝试切换它时,它不起作用。什么都没发生。没有错误;没有变化。它绝对无所作为。我甚至尝试使用console.log并无法让它做出反应。该按钮可以工作,因为警报有效;但切换不起作用。

任何人都可以让我知道如何解决这个问题吗?

+3

是否包括YOUT选择字符串(狗)的''#? –

+0

我不敢相信。非常感谢。我一直在为此工作了一个多小时。谢谢! – ILikeTurtles

回答

1

这里dog只是一个变量,而不是一个DOM节点。

你需要做的:

$("#"+dog).toggle(); //assuming it is an id. if class, use . instead of # 
+1

我也向你指出了你。谢谢! – ILikeTurtles

1

如果dog内容的ID,用这个:

$("#" + dog).toggle(); 

或者,如果它是一个类,使用此:

$("." + dog).toggle(); 

因为,就你而言,它将是一个ID,你需要使用第一个。

+0

我向您的帖子添加了向上箭头投票。非常感谢。 – ILikeTurtles

+0

谢谢@Aaron! –

1

你错过了选择# here.Then将考虑作为一个变量不是DOM元素

​​

$("#"+dog).toggle(); 
+0

该网站说你是第一个发布。我冷静下来之后,我会接受你的回答,并允许我这样做。非常感谢! – ILikeTurtles

+0

@Aaron再次检查谁先发布! :P –