Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取单击的id并在另一个函数中使用它_Javascript_Jquery - Fatal编程技术网

Javascript 获取单击的id并在另一个函数中使用它

Javascript 获取单击的id并在另一个函数中使用它,javascript,jquery,Javascript,Jquery,我有几个包含图像、文本和复选框的框: <label name="skill" id="testbox" class="box tooltip" onclick="toggleCheckbox('test');" style="background-image:url('red.png')"> <span><img class="callout" src="callout.png"><script>document.write (test);<

我有几个包含图像、文本和复选框的框:

<label name="skill" id="testbox" class="box tooltip" onclick="toggleCheckbox('test');"  style="background-image:url('red.png')">
<span><img class="callout" src="callout.png"><script>document.write (test);</script></span>
<div class="margin">
    <img src="">
    test<input name="choice" value="1" id="test" type="checkbox" onchange="onCheckboxChanged(); checkTotal();" disabled>
</div>
我可以复制/粘贴代码并更改id,但我有70多个盒子,还会有更多。我试过:

document.getElementsByName("skill")[0].getAttribute('id')

但它可能会从名为“技能”的盒子中取出所有id。我想我应该使用类似的东西,它可以工作,但我不知道如何将它连接到我的代码,这样我就可以在我的函数中使用这个函数中单击的id(因为var是最好的)。

尽可能避免内联javascript,也可以使用document.write你可以使用
.innerHTML

尝试将onclick事件侦听器附加到每个标签,并获取单击的标签ID:

var all_labels = document.getElementsByName("skill");
for (var i = 0; i < all_labels.length; i++) {
    all_labels[i].onclick = function () {
        alert(this.getAttribute('id'));
    };
}; 
var all_labels=document.getElementsByName(“技能”);
对于(变量i=0;i

Demo

尽可能避免内联javascript,也不要使用document.write。您可以使用
.innerHTML

尝试将onclick事件侦听器附加到每个标签,并获取单击的标签ID:

var all_labels = document.getElementsByName("skill");
for (var i = 0; i < all_labels.length; i++) {
    all_labels[i].onclick = function () {
        alert(this.getAttribute('id'));
    };
}; 
var all_labels=document.getElementsByName(“技能”);
对于(变量i=0;i

演示

我认为您的问题在于您只想编写一次逻辑代码并将其应用于所有复选框等,对吗

如果是这样,我认为JQuery将在这方面帮助您很多

我真的不知道您想要实现什么,但我可以给您一个快速的示例,说明如何使用JQuery以及JQuery使用上下文检索逻辑上彼此属于的元素的能力

如果您有一个带有大量复选框的标记,并且在每个框旁边都有一个文本框,例如:

<div class="Row">
    test <input name="choice" class="CheckBox" type="checkbox"/> <input type="text" class="TextBox"/>
</div>
<div class="Row">
    test <input name="choice" class="CheckBox" type="checkbox"/> <input type="text" class="TextBox"/>
</div>
<div class="Row">
    test <input name="choice" class="CheckBox" type="checkbox"/> <input type="text" class="TextBox"/>
</div>
<div class="Row">
    test <input name="choice" class="CheckBox" type="checkbox"/> <input type="text" class="TextBox"/>
</div>
我希望这足以帮助您了解它的工作原理。
为了解决这个问题,这里有一个例子:

我认为您的问题是您只想编写一次逻辑代码并将其应用于所有复选框等,对吗

如果是这样,我认为JQuery将在这方面帮助您很多

我真的不知道您想要实现什么,但我可以给您一个快速的示例,说明如何使用JQuery以及JQuery使用上下文检索逻辑上彼此属于的元素的能力

如果您有一个带有大量复选框的标记,并且在每个框旁边都有一个文本框,例如:

<div class="Row">
    test <input name="choice" class="CheckBox" type="checkbox"/> <input type="text" class="TextBox"/>
</div>
<div class="Row">
    test <input name="choice" class="CheckBox" type="checkbox"/> <input type="text" class="TextBox"/>
</div>
<div class="Row">
    test <input name="choice" class="CheckBox" type="checkbox"/> <input type="text" class="TextBox"/>
</div>
<div class="Row">
    test <input name="choice" class="CheckBox" type="checkbox"/> <input type="text" class="TextBox"/>
</div>
我希望这足以帮助您了解它的工作原理。
玩弄它,下面是一个例子:

请为
toggleCheckbox
发布你的代码。你能为你的要求制作一个提琴吗?请为
toggleCheckbox
发布你的代码。你能为你的要求制作一个提琴吗?它可以工作,但我不能让这个id作为全局值工作-或者像你在JSFIDLE上看到的那样使用它。@Hayaku,您希望在单击时获取ID,然后可以从单击处理程序中调用函数。检查这里:-这是我的onCheckboxChanged函数,它是以一种有效的方式编写的。我不会说谎,这不是我完全做的,我只知道一些关于js的事情。所以你说我应该去掉onchange事件中的onCheckboxChanged()并从函数中调用它?如果是这样的话,我还是不明白怎么做。为了更准确,我想制作testbox.style。。。在点击标签上运行(这就是我需要使用点击id的原因)。@Hayaku,你可以这样调用你的函数:-如果你想让我帮助你更多地发布链接到你的页面或将你所有的html添加到fiddle中。函数中有许多元素我在html中看不到。@Hayaku,你知道如何使用控制台吗?它可以工作,但我不能让这个id作为全局值使用,或者像你在JSFIDLE上看到的那样使用它。@Hayaku,你想在单击时获取id,然后你可以从单击处理程序中调用函数。检查这里:-这是我的onCheckboxChanged函数,它是以一种有效的方式编写的。我不会说谎,这不是我完全做的,我只知道一些关于js的事情。所以你说我应该去掉onchange事件中的onCheckboxChanged()并从函数中调用它?如果是这样的话,我还是不明白怎么做。为了更准确,我想制作testbox.style。。。在点击标签上运行(这就是我需要使用点击id的原因)。@Hayaku,你可以这样调用你的函数:-如果你想让我帮助你更多地发布链接到你的页面或将你所有的html添加到fiddle中。函数中有许多元素我在html中看不到。@Hayaku,你知道如何使用控制台吗?