問題タブ [dom]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - 4 つの div のうち、表示されている div を見つけます
jQuery を使用して、4 つの可能な div からどの div が表示されているかを把握する必要があります。一度に表示されるのは、これらの div の 1 つだけです。
これは私がこれまでのところうまくいくものです:
これをリファクタリングする方法はありますか?これを理解する簡単な方法はありますか?
javascript - JavaScriptでのinnerHTML操作
サーバーからコンテンツを動的にフェッチし、次のようなものを使用してこのコンテンツをコンテナノードに配置するWebページコードを開発しています。
このノードの以前のコンテンツを上書きしなければならない場合があります。これは、前のコンテンツがより多くの垂直スペースを占有し、新しいコンテンツが占有し、ユーザーがページを下にスクロールするまで(高さを指定すると、新しいコンテンツが許可するよりも多くスクロールする)、正常に機能します。
この場合、ページは正しく再描画されません。古いコンテンツのアーティファクトがいくつか残っています。これは正常に機能し、ブラウザを最小化して復元する(またはウィンドウを別の方法で強制的に再描画する)ことでアーティファクトを取り除くことも可能ですが、これはあまり便利ではないようです。
私はこれをSafariでのみテストしています(これはiPhoneに最適化されたWebサイトです)。
誰かがこれに対処する方法を知っていますか?
javascript - ページ DOM がロードされたときに通知を受け取る (ただし、window.onload の前)
ページ本文が読み込まれたときに通知を受け取る方法がいくつかあることは知っていますが ( window.onloadイベントを発生させるすべての画像とサード パーティのリソースが読み込まれる前に)、ブラウザーごとに異なります。
すべてのブラウザでこれを行う決定的な方法はありますか?
これまでのところ、私は知っています:
DOMContentLoaded : Mozilla、Opera 9、および最新の WebKit で。これには、イベントにリスナーを追加することが含まれます。
document.addEventListener( "DOMContentLoaded", [初期化関数], false );
Deferred script : IE では、@defer 属性を持つ SCRIPT タグを発行できます。これは、BODY タグを閉じた後にのみ確実に読み込まれます。
ポーリング: 他のブラウザではポーリングを続けることができますが、ポーリングする標準的なものさえありますか? または各ブラウザで異なることを行う必要がありますか?
document.write や外部ファイルを使わずに行けるようにしたいです。
これは、jQuery を介して簡単に実行できます。
しかし、私は JS ライブラリを作成していて、jQuery が常にそこにあるとは期待できません。
java - getChildNodes() によって返される DOM NodeList の順序
DOM メソッドは、現在の の子の をgetChildNodes()
返します。aは順序付けされていますが、リストはドキュメントの順序であることが保証されていますか?NodeList
Node
NodeList
たとえば、 given<a><b/><c/><d/></a>
はwithを返し、その順序で?a.getChildNodes()
を返すことが保証されています。NodeList
b
c
d
javadocはこれについて明確ではありません。
javascript - ブラウザで Javascript を使用して XY 座標で位置を特定するにはどうすればよいですか?
ユーザーがページを下にスクロールし、リンクをクリックし、必要なことは何でもしてから、リンクのあるページに戻ったときに、同じ (xy) の場所にいるようにしようとしています。以前のブラウザ。それ、どうやったら出来るの?
私はDOM初心者なので、これを行う方法についてあまり知りません。
対象ブラウザ:IE6/7/8、Firefox 2/3、Opera、Safari
追加: 学習を支援するために JQuery というプログラムを使用しています
javascript - コンテナーをコピーするときに、最近更新されたフォーム項目を Firefox に「貼り付ける」にはどうすればよいですか?
次のような JavaScript を少し使って「複製」したいくつかの入力ボックスを含む dl があります。
IE では、sourceBox のフォームが newBox に複製され、ユーザーが指定した値が追加されます。Firefox では、元の sourceBox に入力された最後の値が newBox に存在しません。この「棒」はどうやって作るの?
javascript - Scriptacolus のノード ビルダーを使用して html を挿入する方法
たとえば、このコード
p タグと a タグが表示される場合、それらがエスケープされないようにするにはどうすればよいですか?
javascript - コンテンツが Ajax 呼び出しからのものである場合に、div のコンテンツにアクセスする際の問題
これは非常に単純なプロトタイプの例です。
それが行うのは、ウィンドウのロード時に、html を div に貼り付ける ajax 呼び出しだけです。
紛らわしいのは、プロトタイプが div に実際に何かがあることを理解するコンテキストです。
ajax 呼び出しの onSuccess 部分を見ると、その時点で $('content').innerHTML に内容が含まれていることがわかります。
ただし、ajax 呼び出しの直後に $('content').innerHTML を確認すると、空のように見えます。
これは私の根本的な誤解に違いありません。誰か私に説明してくれませんか?
編集
何かを明確にしたいだけです。Ajax 呼び出しが非同期であることを認識しています。
物事が実行されている実際の順序と、それが私を混乱させる理由は次のとおりです。
- ページが読み込まれます。
- get-table.php への Ajax リクエストが行われます。
- click1() INSIDE onSuccess の呼び出しが発生します。div にコンテンツがあるというアラートが表示されます。
- Ajax 呼び出しが発生した後の click1() への呼び出し。div が空であるという警告が表示されます。
つまり、コードは書かれた順序で実行されているようですが、DOM は同じ順序で更新されていません。
編集 2 したがって、短い答えは、コードを onSuccess に配置することが正しい場所であるということです。
考慮すべきもう 1 つのケースは、次のように、Ajax 呼び出しを実行してから、最初の呼び出しの onSuccess から別の Ajax 呼び出しを実行する場合です。
php - PHP5でユーザーの入力からDOMを作成するにはどうすればよいですか?
PHP5でユーザーの入力からDOMを作成するにはどうすればよいですか?