0

我被这个任务困住了:

我有一个附带 onclick="myFunction(this);" 的函数 到我页面的数十张图片。在函数内部,我检索点击图像的类名。最后,我想查看一个 html 表单并修改一个与检索到的类具有相同 id 的输入字段。

这是一个澄清的例子:

  1. 用户单击带有 class="green" 的图像
  2. 我们找到 id="green" 的表单的输入字段并将其值更改为 1

或者

  1. 用户单击带有 class="red" 的图像
  2. 我们找到 id=red" 的表单的输入字段并将其值更改为 1

等等..

我有大部分代码,但我似乎没有得到的是我应该如何使用检索到的图像类在表单中找到相应的 id。

4

2 回答 2

1

如果您使用的是 jQuery,并且我假设您是因为您将问题标记为“jquery”,那么您不想要一个onclick=...,您想用 jQuery 分配处理程序:

$("img").click(function() {
    $("#" + $(this).attr("class")).val("1");
    // or
    $("#" + this.className).val("1");
});

但是使用您现有的myFunction(),您可以这样做:

function myFunction(el) {
    var matchingInput = document.getElementById(el.className);
    if (matchingInput)
        matchingInput.value = "1";
}

如果您要查找的元素具有 id,则“查看 html 表单”的概念实际上并不适用,因为(如果您的 html 有效)将只有一个元素具有任何给定的 id,因此您可以获得参考直接使用document.getElementById()或等效的 jQuery/CSS 选择器添加到该元素$("#someid")

Note that using the class attribute for this purpose makes it impossible to assign other classes to the same img elements, so I'd suggest you instead use a data-xxx attribute:

<img data-relatedFieldId="field1" class="someclass1 someclass2" src="...">

And then in your function:

$("#" + $(this).attr("data-relatedFieldId")).val("1");
于 2012-07-21T02:45:53.080 回答
0

您可以将类名与#符号连接并选择输入标签:

 var clas = $(this).attr('class') // if image has only 1 class 
 $('#' + clas).val('1')
于 2012-07-21T02:42:09.977 回答