簡體   English   中英

index.html:1未捕獲的ReferenceError:在HTMLDivElement.onclick中未定義VARIABLE

[英]index.html:1 Uncaught ReferenceError: VARIABLE is not defined at HTMLDivElement.onclick

我試圖將包含HTML標記的jquery選擇器中的HTML文件中的HTML變量傳遞給JavaScript函數。

var $tweeter = $('<div class="tweeter" onClick="userTweet(' + streams.home[index].user + ')"></div>');

其中userTweet()是鏈接的JavaScript文件中的函數,並且streams.home[index].user是具有usermessagecreated_at鍵的用戶對象的數組。 當我單擊div時,出現錯誤

index.html:1 Uncaught ReferenceError: VARIABLE is not defined at HTMLDivElement.onclick

VARIABLEstreams.home[index]user屬性中的用戶名

如何傳遞此變量以在JavaScript文件中運行該函數? 如果您需要任何進一步的信息,請告訴我。

謝謝!

您的userTweet在窗口上可用嗎? 如果是的話

$('<div class="tweeter"/>').on('click', function() {
  window.userTweet(streams.home[index].user)
})

您是單引號(')和雙引號(“)的受害者。

當你嘗試去做

var $tweeter = $('<div class="tweeter" onClick="userTweet(' + streams.home[index].user + ')"></div>');

// For Simplicity assuming streams.home[index].user value is 'mike'

您的字符串不是您期望的。

這是形成的字符串:

<div class="tweeter" onClick="userTweet(mike)"></div>
// Note mike is not a value but as a variable here

這是您期望的:

<div class="tweeter" onClick="userTweet('mike')"></div>
// Note 'mike' is value here

因此,當您調用userTweet您傳遞了一個不存在的變量mike和此錯誤。

這兩個調用的區別是userTweet(mike)userTweet('mike') 第一次調用mike是可變的(根據您的情況),而第二個mike是一個值。

建議您在javascript中的字符串和反引號上關注此鏈接,因為這可以解決您的問題。

也只是這樣做

var $tweeter = $(`<div class="tweeter" onClick="userTweet(' ${streams.home[index].user} ')"></div>`);

// If on older version and new JavaScript is not supported then
var $tweeter = $('<div class="tweeter" onClick="userTweet(' + "'" + streams.home[index].user + "'" + ')"></div>');

暫無
暫無

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

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