Javascript 如何设置;这";作为onclick事件中的子元素

Javascript 如何设置;这";作为onclick事件中的子元素,javascript,onclick,this,Javascript,Onclick,This,编辑2: 实际上,我想做的是将img属性传递给服务器端,因为googleappscript在服务器端是javascript。向服务器传递数据只能是字符串。我找到的解决方案是添加一个普通的img属性,该属性的值为一个对象,该对象包含我想要的所有内容(id,src,…我的img.I JSON.stringized这个值,BOOM…现在我得到了我需要的所有数据。 谢谢你的帮助,对你的误解表示歉意 编辑: 多亏了这条线 我终于找到了解决问题的办法 我在ul列表中使用了一个.on()方法,现在我的“th

编辑2

实际上,我想做的是将img属性传递给服务器端,因为googleappscript在服务器端是javascript。向服务器传递数据只能是字符串。我找到的解决方案是添加一个普通的img属性,该属性的值为一个对象,该对象包含我想要的所有内容(id,src,…我的img.I JSON.stringized这个值,BOOM…现在我得到了我需要的所有数据。
谢谢你的帮助,对你的误解表示歉意

编辑

多亏了这条线

我终于找到了解决问题的办法

我在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…”现在列表出现了,但是。。。