JavaScriptを使ってプログラムを書いています。
今、jqueryでDOM要素を取得し、.hide()でその要素を非表示にする操作をしたいと思っています。
ほとんどの要素は操作ができているのですが、DOM要素が一部取れない部分があり、どうもそこは動的にDOM要素が追加されているようなことがわかってきました。このときにも該当のDOM要素を取得し、非表示とする方法があれば教えていただけませんでしょうか。
以下のように書いています。
-----------
$('.classname').hide();
DOM要素がとれない部分は以下のように動的にclassが追加されていて、イベントがうまく動きません、、
$('.classname.classname動的追加').hide();
かといって、動的追加された部分を指定しても動きません。。
説明がよくわからなかったらすみません。
説明がよくわかりません。DOM操作について質問するなら
対象となるHTMLコードも書くべきでしょう。
追加要素に対して追加以前に設定されたイベント(ハンドラ)が機能しないというのはありますが、要素の操作、つまりセレクタが機能しないというのは聞いたことがありません。
質問の文脈からして
$(".classname .appendclassname").hide();
のセレクタだと
<div class="classname" >
<div class="appendclassname" >動的追加した要素</div>
</div>
こんな感じでしょうか
appendclassnameの部分が追加要素によって可変のため操作が難しいというケースなら
$(".classname div").hide();
$(".classname > div").hide();
などのタグ名で処理するのも手だとおもいます。
または
<div class="classname" >
<div class="appendclassname forhide" >動的追加した要素</div>
</div>
のように追加処理時にhide用のクラス名を追加しておいて
(※クラス名はスペースで区切ると複数設定できます。)
$(".forhide").hide();
とするのもいいですね。