2011-02-03 55 views
1

功能.html()在顯示項目時起作用。但是當我添加style="display:none"時,那麼html()函數不會返回任何內容。有沒有解決這個問題的方法?謝謝?jQuery .html()不能與隱藏的div一起使用?

+0

我認爲你是錯的。不管CSS如何,`html`函數都可以工作。 – tvanfosson 2011-02-03 01:38:01

+0

這不是你的問題。你可以添加一些上下文,或者你正在使用的選擇器嗎? – meagar 2011-02-03 01:38:05

回答

6

它的工作,看到這個演示http://jsfiddle.net/jNLqA/

<div style="display: none"> 
    <p>Test</p> 
</div> 
<pre></pre> 

$('pre').text($('div').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> 

所以這是否(與jQuery改變它):

<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的另一種方式):

<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> 

SOOO ...需要從更多信息/語境你

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> 

也許在$ field-> content中有東西會破壞你的html?缺少結束標籤或報價或什麼?或者,也許你的jQuery選擇器不閃亮?你的選擇器是什麼樣的?

1

我想發佈在這裏,因爲我也發現.html將無法獲得隱藏元素的值,如果該元素比jQuery代碼更高的頁面。

如果我讓元素可見,那麼代碼按預期工作,或者如果我將元素移到jQuery下面,那麼它也可以工作。

這似乎是答案,至少對我而言。

所以最簡單的解決方法就是將jQuery代碼移動到隱藏元素上方,然後.html似乎可以在隱藏元素上工作。

這似乎是它可能是jQuery中的一個錯誤,因爲它是相當奇怪的行爲。 另外,如果我使用jQuery .hide方法來隱藏頁面加載的元素,然後顯示它,然後在獲取值之前顯示它,如果元素更高,仍然會失敗。

羅賓

0

我使用的ID時,有問題改爲類和所有工作的罰款