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

のコンテンツがdogID の場合は、次を使用します。

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

または、クラスの場合は、これを使用します。

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

あなたの場合は ID になるので、最初の ID を使用する必要があります。

于 2013-06-06T03:03:48.750 に答える
1

ここでセレクターを見逃しました。#その後、DOM要素ではなく変数と見なされます

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

また

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