0

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

我的 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,但无法让它做出反应。该按钮有效,因为警报有效;但切换不起作用。

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

4

3 回答 3

1

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

你需要做:

$("#"+dog).toggle(); //assuming it is an id. if class, use . instead of  #
于 2013-06-06T03:03:32.710 回答
1

如果 中的内容dog是一个 ID,使用这个:

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

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

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

因为,在你的情况下,它将是一个 ID,你需要使用第一个。

于 2013-06-06T03:03:48.750 回答
1

您在这里错过了选择器#。然后它将被视为变量而不是 DOM 元素

var dog = "#post" + cleanid;
        $(dog).toggle();  

或者

$("#"+dog).toggle();
于 2013-06-06T03:03:51.500 回答