簡體   English   中英

js中的JSON.stringify

[英]JSON.stringify in js

如何使用以下代碼從外部JS獲取<div> id和標題的引用:

function recordedEvent() {    
    var v_Id = $(this).attr('Id');
    var v_Title = $(this).attr('Title');
    var o = { Title : v_Title, ObjectId : v_Id };
    alert(JSON.stringify(o));
}

在HTML中使用名為box1()onclick調用該函數。

我要在CplTemplateSetup.js代碼CplTemplateSetup.js功能從HTML中運行:

content_left_30_four_click_images_right_70_head_content_template.html

任何幫助,將不勝感激。


PSJSON數據( zip存檔

好吧,最明顯的問題是回調后沒有右括號。.否則代碼看起來不錯


編輯

window.lastClickedBoxData = {}; // just reassign that within your function

要么

window.runThisWhenClicked = function () {
    var v_Id = $(this).attr('Id');
    var v_Title = $(this).attr('Title');
    var o = { Title : v_Title, ObjectId : v_Id };
};

然后就

$(".box").click(window.runThisWhenClicked);

我認為您所面臨的問題對於任何不查看您的代碼的人來說都是顯而易見的。

您在html的script標簽內定義了一個函數,並在被單擊框的onclick屬性中調用了該函數。 對於該功能, this是指單擊的框。 從那里,您可以在外部js文檔中調用一個函數。 在該函數中, this引用窗口對象。 換句話說,對於您發布的代碼, $(this)是window對象的jquery實例,它沒有您要查找的屬性,例如idtitle ,因此為空。

要查看我在說什么,請打開控制台並將以下代碼行添加到每個函數中:

console.log(this);

如果您在執行此操作時遇到麻煩,則以下代碼也應該可以正常工作,但對於調試而言效果不佳:

alert(this);

您需要所有代碼都位於html腳本標記或外部文檔中。 此外,您不應在html中使用onclick定義在click事件期間要調用的函數。 最好使用javascript或jquery做到這一點,以使您的javascript與html完全分開。

編輯 :您不應該使用答案來更新您的問題。 您應該使用此信息編輯原始問題,以便任何有類似問題的人都可以找到解決方案。 我會直接對答案發表評論,但我沒有做到這一點的聲譽。

暫無
暫無

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

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