機能.html()
は、アイテムが表示されているときに機能します。しかし、style="display:none"
を追加すると、html()関数は何も返しません。この問題の回避策はありますか?ありがとう?jQuery .html()は隠しdivで動作しませんか?
答えて
それは仕事、http://jsfiddle.net/jNLqA/
<div style="display: none">
<p>Test</p>
</div>
<pre></pre>
と
$('pre').text($('div').html());
が私のためにうまく動作するようです。このデモ見るん:http://jsfiddle.net/petersendidit/wgQpg/
はこの作品を(表示はハードコード):
<div id='blah' style="display:none">something</div>
<script type='text/javascript' src='jquery.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
alert($('#blah').html());
});
</script>
<div id='blah'>something</div>
<script type='text/javascript' src='jquery.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
$('#blah').attr('style','display:none');
alert($('#blah').html());
});
</script>
と、これは(jqueryの/ wを別の方法でそれを変更)あまりにも動作します:すっごく
<div id='blah'>something</div>
<script type='text/javascript' src='jquery.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
$('#blah').hide();
alert($('#blah').html());
});
</script>
...から詳細/コンテキストを必要とするので、この(jQueryを使ってこれを変更)しあなた
EDIT(UPDATE):あなたのコメントに基づいて
サンプルコードでは...再び、これは動作します:
<?php
class blah {
var $element_type;
var $content;
}
$field = new blah();
$field->element_type = 'div';
$field->content = 'something';
?>
<<?php print $field->element_type; ?> class="field-content accordionContent" style="display:none"><?php print $field->content; ?></<?php print $field->element_type; ?>>
<script type='text/javascript' src='jquery.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
alert($('div').html());
});
</script>
多分あなたのhtmlを壊している$ field-> contentに何かがありますか?終了タグや見積もりなどがありませんか?または、あなたのjqueryセレクターが輝いていないかもしれませんか?あなたのセレクターの外観はどうですか?
私の投稿へのコメントの詳細情報。ありがとう。 – user194076
あなたのコメントに基づいて更新が追加されました –
jQueryコードよりもページが上位になると、.htmlが隠し要素の値を取得できないことがわかったので、ここに投稿したいと思います。
要素を可視にすると、コードは期待どおりに機能します。要素をjQueryの下に移動すると、コードも機能します。
これは少なくとも私の答えと思われます。
したがって、最も簡単な修正は、jQueryコードを隠し要素の上に移動し、.htmlが隠し要素で機能するようにすることです。
これは、jQueryのバグかもしれないようですが、これはむしろ奇妙な動作です。 また、jQuery .hideメソッドを使用してページの読み込み時に要素を非表示にしてから、値を取得する前に表示するようにした場合、要素がまだ見知らぬ方が高い場合でも失敗します。
ロビン
私はIDを使用した場合、問題があったクラスに変更し、すべてが
- 1. なぜjquery fadeIn()は.html()で動作しませんか?
- 2. JQueryはインラインブロックのdivで動作しません。
- 3. AJAX/jQuery alert()は動作しません.html()または.text()は
- 4. Jquery - toggleClass()はDIVを隠していますが、DIV内のアイテムは隠していません。
- 5. htmlの表はjqueryで動作しません
- 6. バックはHTMLで動作しません
- 7. Javascriptはhtmlで動作しません
- 8. divクラスはcssで動作しますが、スパンクラスは動作しませんか?
- 9. ブートストラップがhtmlで動作しません
- 10. JavascriptはHTMLでは動作しますが、PHPでは動作しません
- 11. jQueryはiFrameで動作しません。
- 12. jQueryはangularJsで動作しません
- 13. jqueryはdreamweaverで動作しません
- 14. JQueryは動作しませんが、JSFiddleで動作します
- 15. コードはjsfiddleで動作しますが、htmlページでは動作しません
- 16. jquery別のhtmlファイルからhtmlを追加しても動作しません
- 17. Contenteditable divが動作しません
- 18. jQueryツリービューのプラグインがHTMLファイルで動作しません
- 19. jQuery .htmlがテーブルセルで動作していません
- 20. タッチスタートイベントが当初隠しボタンで動作していません
- 21. HTML + CSS: '' 幅は動作しません
- 22. コードはHTMLでは動作しますが、JSPでは動作しません
- 23. Socket.ioはJQueryなしでは動作しませんか?
- 24. jQueryでjsFiddleで動作していますが、htmlではありません
- 25. jQueryモバイルスクリプトが動作しませんか?
- 26. Javascriptはxhtmlで動作しますが、htmlでは動作しません
- 27. JSFIDDLEでは動作しますが、.htmlでは動作しません
- 28. jQueryはIEでは動作しますがChromeでは動作しません
- 29. jQueryはFirefoxでは動作しますが、IE7では動作しません。
- 30. 隠しクラスのブートストラップが動作しませんか?
うまく働いた私はあなたが間違っていると思います。 'html'関数は、CSSに関係なく動作するはずです。 – tvanfosson
それはあなたの問題ではありません。コンテキストやセレクタを追加できますか? – meagar
私はあなたにエラーを与えるコードを投稿する必要があると思います。私は表示することができます:なしdivとまだ$().html()のHTMLコンテンツを返すには、問題はありません。 –