[英]using variable in jquery script
我導入了我的腳本
<script src="/test.js"></script>
而且內容是
var test= $(document).find('aside#bar');
var list= test.find('ul');
然后我使用以下腳本來追加字符串
<script>
$(document).ready(function () {
$(list).text("testing message");
});
</script>
但Chrome控制台說Uncaught ReferenceError: list is not defined
我怎樣才能在jquery中使用變量?
更新
我發現所有腳本在該頁面中都不起作用
我用
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="/test.js"></script>
<script>
$(document).ready(function () {
$(document).html("testing message");
});
</script>
但沒有任何附加功能,Chrome控制台不會記錄任何內容
在test.js文件中,聲明一個局部變量。 你必須使用window.variableName
聲明它是全局的,如下:
window.test= $(document).find('aside#bar');
window.list= test.find('ul');
然后,您將能夠從test.js 之后加載的其他Javascript文件訪問它。
檢查是否在Chrome中加載了/test.js. 我認為你給這個文件的URL可能是錯的
<script src="/test.js">
打開Chrome的“網絡”面板 ,然后重新加載頁面。 當test.js
腳本嘗試加載時,您是否看到Red錯誤消息?
如果這個頁面是http://localhost/test/mypage.html
,那么src='/test.js'
將加載http://localhost/test.js
。 因為/
在開始。 因此,請檢查URL路徑,看看是否先加載腳本。
test.js
腳本只是說var test = ..., var list = ...
但此時,文檔甚至可能沒有加載! 但是,當然,如果您的腳本test.js
已正確加載 - 那么它將顯示test
錯誤並list
變量本身。 由於你在設置這個變量時沒有看到錯誤,我的第一個猜測是test.js
沒有被加載。 首先修復腳本加載,然后修復腳本本身:
$(document).ready(function() { var test = ... var list = ... });
但是,當您嘗試在其他地方使用test
或list
時, 這也將無效 ! 因為它們是使用var
聲明的。 var
只創建局部變量,因此它們在函數外部不可用(如果你在上面檢查,我們將var test =..., var list = ...
包裝在一個function() { }
,所以它們在該功能之外將不可用)。 所以讓它們像:
$(document).ready(function() { window.test = ... window.list = ... });
您也可以通過刪除var
關鍵字來完成相同的操作,但這有其自身的問題。 確保您首先閱讀Javascript Variable Scopes 。
對所有腳本標記使用任何類型或語言:
<script language="javascript" type="text/javascript"> $(document).ready(...) </script>
只需使用list.html("test message")
或list.text("test message")
$(document).ready(function () {
list.html("testing message");
});
編輯:
並且因為在test.js
中使用了jquery函數
<script src="jquery.js"></script> <= First
<script src="test.js"></script> <= Second
為什么在文檔准備好時不定義變量?
你可以嘗試在腳本中
$(
var test= $(document).find('aside#bar');
var list= test.find('ul');
);
和
<script>
$(document).ready(function () {
$(list).text("testing message");
});
</script>
但我會這樣做
$(
var test= $(document).find('aside#bar');
var list= test.find('ul');
$(list).text("testing message");
);
最后......除了#bar ????
旁邊是一個班級? 你忘記了點? 。在旁邊?? 可能存在問題。
抱歉我的英文不好,希望對你有所幫助! 再見!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.