jquery がエラーを報告します。 Node' で 'appendChild' の実行に失敗しました。新しい子要素です。
2022-02-14 07:13:53
jquery reports an error Failed to execute 'appendChild' on 'Node': 新しい子要素です。
このエラーが報告され、30分ほどの作業で原因が特定されました。正確なデモは以下の通りです。
htmlの中の要素です。
<div class="box">
<div class="inner"></div>
</div>
<div class="addEle">
<div class="inner"></div>
</div>
var box=$(".box");
var addEle=$("addEle");
box.find(".inner").apend(addEle);
これは追加したい要素です。
<div class="box">
<div class="inner">
<div class="addEle">
<div class="inner">
<div class="addEle">
<div class="inner">
<div class="addEle">
<div class="inner">
...
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
以下は、jqueryのコードです。
box.children(".inner").apend(addEle);
理由
最後の文がポイントです: box.find(".inner").apend(addEle); この文の意味は、box要素でその下のinnerを選択し、addEle要素をinnerに追加することです。
ここで問題があって、find(".inner")をすると、ボックス内の元のinnerだけでなく、付加されるaddEleのinnerも見つかってしまうのです(ここがポイント、ものによってはよくわからないのですが)。
このとき、上の文は、addEleをaddEleの下のinnerに追加し、新しく追加されたaddEleがinnerを持つので、再びaddEleをaddEleの下のinnerに追加し、新しく追加されたaddEleが再びinnerを持ち、デッドループが発生する、というものです。
等価:inner(addEle(inner()))です。
その結果、次のようになります。
<div class="box">
<div class="inner">
<div class="addEle">
<div class="inner">
<div class="addEle">
<div class="inner">
<div class="addEle">
<div class="inner">
...
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
解決策
私のような場合、find(".inner")はできず、以下のようにinnerをピンポイントで指定することになります。
box.children(".inner").apend(addEle);
関連
-
[解決済み】Bootstrap - Uncaught TypeError: 未定義のプロパティ 'fn' を読み取れない。
-
[解決済み] jQueryのディファレンシャルとプロミス - .then() vs .done()
-
[解決済み] Jquery.comのサイトのソースファイルはどこにあるのでしょうか?ダウンロードのリンクがないのですが
-
[解決済み] jQueryがfadeOutで動作しない
-
[解決済み] ユーザーがDIVの外側をクリックしたときに、jQueryを使用してDIVを非表示にする
-
[解決済み] ネストした多次元のjsonオブジェクトの書き方
-
[解決済み] jQueryのinit関数を設定する
-
[解決済み] jquery .text()または.html()が動作しない
-
[解決済み] jQuery resizableを画像と結合する方法は?
-
Uncaught DOMException。原点クロスドメイン問題解決フレームがブロックされた
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】カルーセルで画像を中央に配置する方法
-
[解決済み] Bootstrap のカルーセルがスライドしない
-
[解決済み] TypeError: $.ajax(...) is not a function?
-
[解決済み] jQueryで文字色を変更するにはどうすればよいですか?
-
[解決済み] JWplayer 再生クリックでフルスクリーン表示
-
[解決済み] 右から検索トグル
-
[解決済み] jQueryでborder-bottomの色を変更する?
-
[解決済み] JW-Player - アンロードするには?
-
[解決済み] jqueryでラジオボタンを検証する?
-
[解決済み] jquery - 成功時にajaxの結果を使用して値を返す