0

H1 を作成するボタン<button onclick="takedown()"> take down </button>とテキスト フィールドにテキストの ID を持つボタンがあり、h1 の最後に h1 があり、ボタンの最後に onclick があるボタンがありますonclick="delete()"。これがその機能

    function takedown(){

note = document.getElementById("noteinput").value;

idh1 = note + "h1";
idbutton = note + "button";
idcenter = note + "center";

$('<center id="' + idcenter + '"> <h1 id="' + idh1 + '">' + note + '</h1> <button id="'+ idbutton +'" onclick="deletenote()"> Delete </button> </center>').appendTo("body");


}

delete 関数の場合、remove() は、ボタンの ID と h1 が 1 つの単語の場合にのみ機能します。

function deletenote(){
    // First setting
    var idbuttondelete = event.target.id;
    var idh1delete = idbuttondelete.replace("button", "h1");
    // Removing the button, h1,center
     $('#' + idbuttondelete).remove();
     $('#' + idh1delete).remove();

}

何が間違っているのか、または 2 単語の ID がある場合に JQuery を使用して何かを削除する方法を知っている人はいますか?

4

4 に答える 4

0

他の回答で述べたように... IDのスペースは悪い習慣です!
しかし、クエリセレクターの代わりにIDに「2つの単語」が本当に必要な場合は$、次を使用できます。
document.getElementById("doesnt mind spaces").remove();

于 2013-11-06T21:52:25.393 に答える
0

最初に、ユーザーが「ボタン」、「センター」、または「h1」という単語を入力すると、削除機能の置換は失敗します。これは、削除の JavaScript 置換が最初のインスタンスでのみ機能するためです。ユーザーがスペースを持てないようにするには、持っている削除機能を使用して以下を試してください。

function takedown(){
    var note = document.getElementById("noteinput").value;

    var idh1 = "h1" + note.replace(/\s/g, '_');
    var idbutton = "button" + note.replace(/\s/g, '_');
    var idcenter = "center" + note.replace(/\s/g, '_');
    //the above 3 variables will use _ instead of space

    $('<center id="' + idcenter + '"> <h1 id="' + idh1 + '">' + note + '</h1> <button id="'+ idbutton +'" onclick="deletenote()"> Delete </button> </center>').appendTo("body");
}

ID を制御できず、多数のオブジェクトに対してこれを行う必要がある場合は、一度にすべてを変更できます (この場合はボタン)。

$('button').each(function () {
    var id = $(this).attr('id');
    id = id.replace(/\s/g, '_');
    $(this).attr('id', id);
});

そして、スペースの代わりに _ を使用して ID ですべてのボタンを参照できます。それ以外の場合は、他の人が提案したようにして、ID 以外のセレクターを使用します

于 2013-11-06T21:41:36.130 に答える