私はhtmlとしていくつかのデータを取得するajax関数を持っています。jQuery - html文字列内の要素を非表示にする
このHTML文字列から特定の要素を非表示にするにはどうすればよいですか? $(data).find(".element").hide()
は動作しません...
私はhtmlとしていくつかのデータを取得するajax関数を持っています。jQuery - html文字列内の要素を非表示にする
このHTML文字列から特定の要素を非表示にするにはどうすればよいですか? $(data).find(".element").hide()
は動作しません...
本当にうまくいかないのですか?よくある間違いは、文字列自体が変更されていると仮定することです。
代わりにこれを試してみてください:
var $data = $(data); // create new DOM elements, and keep a reference to them
$data.find(".element").hide(); // find and hide .element
$data.appendTo('wherever'); // append the new elements
別の可能性は.element
がトップレベルに返されたHTMLののであるということです。
この場合、find()
(docs)メソッドの代わりにfilter()
(docs)メソッドが必要です。しようとする
var $data = $(data); // create new DOM elements, and keep a reference to them
$data.filter(".element").hide(); // filter and hide .element
$data.appendTo('wherever'); // append the new elements
最後は.find()
をやって、その後、<div>
要素で全体のHTMLを包むことになります。
// var $data = $('<div>' + data + '</div>'); // original version
var $data = $('<div>').append(data); // this may be better. not sure.
$data.find(".element").hide();
$data.children().appendTo('wherever');
大変ありがとうございます(psは 'filter()'のバージョンのみです) – Alex
+1完全な答えを得るには、私を打ち負かしました;) –
@Alexandra:どうぞよろしくお願いします。つまり、 '.element'はネストされていません。 '.find()'メソッドは、その要素の子孫を一番上に見るだけです。私は最後の解決策がうまくいかないと少し驚いています。私はそれをより良い解決策に変えようとします。 – user113716
hideとはどういう意味ですか?文書にHTMLを追加しましたか?そうでなければ、内側のhtmlノードを隠そうとする前に*行う必要があります。 –
後でもう一度保管していますか?データの内容を見て、要素がその中に配置可能であることを確認することができます。 – Orbling
@ティモシー真実ではない。 http://jsfiddle.net/stodolaj/4X4RY/ –