簡體   English   中英

在jquery腳本中使用變量

[英]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文件訪問它。

  1. 檢查是否在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路徑,看看是否先加載腳本。

  2. test.js腳本只是說var test = ..., var list = ... 但此時,文檔甚至可能沒有加載! 但是,當然,如果您的腳本test.js已正確加載 - 那么它將顯示test錯誤並list變量本身。 由於你在設置這個變量時沒有看到錯誤,我的第一個猜測是test.js 沒有被加載。 首先修復腳本加載,然后修復腳本本身:

     $(document).ready(function() { var test = ... var list = ... }); 
  3. 但是,當您嘗試在其他地方使用testlist時, 這也將無效 因為它們是使用var聲明的。 var只創建局部變量,因此它們在函數外部不可用(如果你在上面檢查,我們將var test =..., var list = ...包裝在一個function() { } ,所以它們在該功能之外將不可用)。 所以讓它們像:

     $(document).ready(function() { window.test = ... window.list = ... }); 

    您也可以通過刪除var關鍵字來完成相同的操作,但這有其自身的問題。 確保您首先閱讀Javascript Variable Scopes

  4. 對所有腳本標記使用任何類型或語言:

     <script language="javascript" type="text/javascript"> $(document).ready(...) </script> 

只需使用list.html("test message")list.text("test message")

$(document).ready(function () {
  list.html("testing message");
});

DEMO

編輯:

並且因為在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM