Javascript 如何设置;这";作为onclick事件中的子元素
编辑2: 实际上,我想做的是将img属性传递给服务器端,因为googleappscript在服务器端是javascript。向服务器传递数据只能是字符串。我找到的解决方案是添加一个普通的img属性,该属性的值为一个对象,该对象包含我想要的所有内容(id,src,…我的img.I JSON.stringized这个值,BOOM…现在我得到了我需要的所有数据。Javascript 如何设置;这";作为onclick事件中的子元素,javascript,onclick,this,Javascript,Onclick,This,编辑2: 实际上,我想做的是将img属性传递给服务器端,因为googleappscript在服务器端是javascript。向服务器传递数据只能是字符串。我找到的解决方案是添加一个普通的img属性,该属性的值为一个对象,该对象包含我想要的所有内容(id,src,…我的img.I JSON.stringized这个值,BOOM…现在我得到了我需要的所有数据。 谢谢你的帮助,对你的误解表示歉意 编辑: 多亏了这条线 我终于找到了解决问题的办法 我在ul列表中使用了一个.on()方法,现在我的“th
谢谢你的帮助,对你的误解表示歉意 编辑: 多亏了这条线 我终于找到了解决问题的办法 我在ul列表中使用了一个.on()方法,现在我的“this”指向img元素 原创帖子: 我有一个空的ul。 我用js附加li。 li包含带有src、id、name属性和onclick事件的img,onclick事件触发一个以“this”为参数的函数。 我需要我的“this”作为我的li中的img元素。相反,我的ul是“this” 我的代码是:
function createItemsList(items){
$("#items").empty();
for (var i = 0; i < items.length; i++) {
$("#items").append('<li class="w3-display-container"
id="test"><img src="'+ items[i].url + '" id ="'+ items[i].id +
'" style="height:25px;"
onclick="google.script.run.addItem(this)"; return false;
class="w3-ripple"></li>');
}
};
google.script.run
.withSuccessHandler(createItemsList)
.getItemsList();
函数createItemsList(项){
$(“#项”).empty();
对于(变量i=0;i”);
}
};
google.script.run
.withSuccessHandler(createItemsList)
.getItemsList();
使用jQuery创建元素有更好的方法:
for (var i = 0; i < items.length; i++) {
let img = $("<img/>", {
src: items[i].url,
id: items[i].id,
css: { height: "25px" },
click: function() { google.script.run.addItem(this); },
"class": "w3-ripple"
});
let li = $("<li/>", {
"class": "w3-display-container"
html: img
});
$("#items").append(li);
}
for(变量i=0;i
$(“”)
工具接受带有新元素属性的第二个参数。您可以将处理程序函数包含在其中。这比试图通过字符串在拼凑的HTML中处理引号字符要简洁得多。我将内部更改如下
var img = $('<img />').attr('src', items[i].url).attr('id', items[i].id);
img.click(function() {
google.script.run.addItem(this)
})
$("#items").append('<li class="w3-display-container" id="test">').append(img);
var img=$('').append(img);
基本上是使用jquery中的click eventhandler,所以我认为这将是img。使用
addEventListener
调用将接收事件和事件。target
是您的元素
这看起来是一个完美的解决方案,似乎您花了时间真正阅读了我的问题。从您声明y的方式来看,我看到了什么我们使用“let”的变量是,您使用的是ECMAScript 2015版的JS,这是google app script无法处理的。因此,我用var更改了let。它不起作用。也许您使用的语法仍然是这个ECMAScript 2015?@user1859295的一部分,您可以使用var
。这里的想法只是基本的jQuery。当您说“它不工作”,这是什么意思?发生了什么事吗?是否报告了错误?此$(“”)功能似乎比我处理字符串时所做的要好得多。该列表甚至不会显示。我知道的唯一“调试”方法是控制台。它显示“未捕获的SyntaxError:意外标识符”“我想html:img之前缺少一个逗号。所以我删除了“class”部分:“w3…”现在列表出现了,但是。。。