簡體   English   中英

將jQuery包含到頁面后,jQuery沒有運行

[英]jQuery doesn't run after including it to a page

Chrome的控制台發生了一些奇怪的事情! 任務是將jQuery lib添加到頁面,然后使用它來做一些事情(jQuery)。 我寫了一些代碼:

    //First part   
    var script = document.createElement('script');
    script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js';
    script.type = 'text/javascript';
    document.getElementsByTagName('head')[0].appendChild(script);
    //Second part 
    $('a[href="?tab=MM"]').text('asdasdasd');

當我將整個代碼粘貼到控制台時,我收到TypeError: Property 'text' of object [object HTMLAnchorElement] is not a function

但! 當我分別粘貼第一部分(創建腳本標簽)然后粘貼第二部分(jQuery表達式)時,我得到了正常的預期結果!

誰能解釋我做錯了什么? 我該怎么做才能正確編寫腳本?

當您逐行運行代碼時,瀏覽器有時間下載並執行要添加的腳本元素中的JavaScript。

當您將其包含在頁面中時,一旦將腳本元素添加到DOM,就會立即執行“第二部分”,但是添加到頁面的JS直到當前腳本完成后才會執行。

這就是為什么jQuery的getScript方法采用回調函數的原因。

您可以獲得類似的效果,但是將“第二部分”包裝在函數中,並將其用作腳本元素上的加載事件偵聽器。 我不知道瀏覽器對此有什么支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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