<div id="test">百度</div>
<script>
var show = $("#test").html(); // 全域變數,預期抓到 "百度"
function test() { alert(show); } // 實際 alert 空值或 undefined
</script>
將賦值移入 test() 內則正常。
<script> 立即執行。<div id="test"> 尚未被解析進 DOM 樹,$("#test") 選不到元素,回傳空 jQuery 物件,.html() 自然為空。test() 稍後被呼叫(如按鈕點擊),此時 DOM 已就緒,選取成功。</body> 之前:確保所有 DOM 元素已解析。$(function() { var show = $("#test").html(); /* 此處安全 */ });
DOMContentLoaded:
document.addEventListener('DOMContentLoaded', () => { var show = document.getElementById('test').innerHTML; });
習慣將所有 DOM 相關邏輯包裹在 $(function(){ ... }) 或 $(document).ready(...) 中,避免 90% 的「找不到元素」坑。