js中的JSON.stringify

时间:2016-01-08 23:58:57

标签: javascript jquery json stringify

如何使用以下代码从外部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中调用,onclick名为box1()

CplTemplateSetup.js中的代码是我要将函数运行到HTML中的地方:

content_left_30_four_click_images_right_70_head_content_template.html

任何帮助都将不胜感激。

P.S。JSON data (zip archive)

2 个答案:

答案 0 :(得分:0)

最明显的问题是你的回调后没有一个右括号..否则代码看起来不错

修改

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);

答案 1 :(得分:0)

我不认为您所面临的问题对于那些没有查看您的代码的人来说是显而易见的。

您在脚本标记中定义了一个函数,在html中,并在单击框的onclick属性中调用该函数。对于该功能,this指的是单击的框。从那里,您可以在外部js文档中调用函数。在该函数中,this引用窗口对象。换句话说,对于您发布的代码,$(this)是窗口对象的jquery实例,它不具有您正在寻找的属性,例如idtitle,所以他们一片空白。

要了解我正在谈论的内容,请打开控制台并在每个功能中添加以下代码:

console.log(this);

如果您在执行此操作时遇到问题,以下代码也可以正常运行,但它不适合调试:

alert(this);

您需要将所有代码放在html脚本标记或外部文档中。此外,您不应该在html中使用onclick定义要在单击事件期间调用的函数。最好使用javascript或jquery来完成它,这样你的javascript就完全独立于你的html。

编辑:您不应该用答案更新您的问题。您应该使用此信息编辑原始问题,以便具有类似问题的任何人都可以找到解决方案。我直接对答案进行了评论,但我没有这样的声誉。