-2

次のようにチェックボックスを作成しJQueryています。

$('<input type="checkbox" ' + 'id=' + (i+1) + '>' + (i+1) + '</input><br/>')

その後、ユーザーが次のチェックボックスをオンにするたびに削除されます。

if (this.checked) {
    $(this).remove();
}

ただし、入力ボックスは削除されますが、番号(id)は<br/>タグに沿ってページに#i残っているため、HTMLページで確認できます。それらも削除したいと思います。だから、私の質問をできるだけ完全にするために、これがどのようにHTML置かれるかです:

<input id="1" type="checkbox">
1
<br>

誰かが私にページから削除する方法の手がかりを教えてもらえ#iます<br/>か?ありがとう

4

4 に答える 4

3

他の回答で述べられているように-入力には終了タグがありません

idそれでも、すべてとを削除する必要があり<br />ます。.next()jqueryで関数を持つものを見つけることができます。<label>IDをまたはに入力する必要があります<span>。それで。例えば:

$(this).next('label').remove();
$(this).next('br').remove();
$(this).remove();

コードは短く書くことができますが、それがどのように機能するかを確認するためのものです。

于 2012-07-20T00:06:09.767 に答える
1

これは、inputタグに終了タグがなく、remove以降のすべてを無視するためです>。これを変更してください。

$('<input type="checkbox" ' + 'id=' + (i+1) + '>' + (i+1) + '</input><br/>')

に:

$('<input type="checkbox" ' + 'id=' + (i+1) + 'value="' + (i+1) +'"><label>'+ (i+1) +'</label>')

$(this).next('label').andSelf().remove();
于 2012-07-20T00:03:31.970 に答える
1

<input>テキストボックス内のテキストは、textnode(textareasの場合のように)ではなく、value属性で設定されます。(混乱させて申し訳ありません)

それでも、チェックボックスが必要です。最善<label>の方法は、テキストノードと<br />(jQueryでは処理できない)の代わりに、を作成することです。

<div class="inputcell">
    <input type="checkbox" id="check5">
    <label for="check5">5</label>
</div>

このDOMを使用すると、でボックス全体を簡単に削除できます$("#check5").parent().remove()。単一の数値は有効な要素IDではないことに注意してください。

于 2012-07-20T00:19:24.440 に答える
0

入力タグには終了タグがありません。チェックボックスを作成するには、次のものが必要です。

$('<input type="checkbox" ' + 'id=' + (i+1) + '>');

また、そのチェックボックスにもラベルを使用する場合はlabel、入力用のclosignタグとそれらの間にテキストを配置できないため、適切な要素またはその他の要素を作成します。

于 2012-07-20T00:03:44.153 に答える