2011-02-03 12 views
1

機能.html()は、アイテムが表示されているときに機能します。しかし、style="display:none"を追加すると、html()関数は何も返しません。この問題の回避策はありますか?ありがとう?jQuery .html()は隠しdivで動作しませんか?

+0

うまく働いた私はあなたが間違っていると思います。 'html'関数は、CSSに関係なく動作するはずです。 – tvanfosson

+0

それはあなたの問題ではありません。コンテキストやセレクタを追加できますか? – meagar

+0

私はあなたにエラーを与えるコードを投稿する必要があると思います。私は表示することができます:なしdivとまだ$().html()のHTMLコンテンツを返すには、問題はありません。 –

答えて

1

はこの作品を(表示はハードコード):

<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セレクターが輝いていないかもしれませんか?あなたのセレクターの外観はどうですか?

+0

私の投稿へのコメントの詳細情報。ありがとう。 – user194076

+0

あなたのコメントに基づいて更新が追加されました –

1

jQueryコードよりもページが上位になると、.htmlが隠し要素の値を取得できないことがわかったので、ここに投稿したいと思います。

要素を可視にすると、コードは期待どおりに機能します。要素をjQueryの下に移動すると、コードも機能します。

これは少なくとも私の答えと思われます。

したがって、最も簡単な修正は、jQueryコードを隠し要素の上に移動し、.htmlが隠し要素で機能するようにすることです。

これは、jQueryのバグかもしれないようですが、これはむしろ奇妙な動作です。 また、jQuery .hideメソッドを使用してページの読み込み時に要素を非表示にしてから、値を取得する前に表示するようにした場合、要素がまだ見知らぬ方が高い場合でも失敗します。

ロビン

0

私はIDを使用した場合、問題があったクラスに変更し、すべてが

関連する問題