这对您来说可能很容易,但是我遇到了麻烦,因此希望您能为我提供帮助。
我正在通过循环创建复选框,并且如果单击复选框,则想在网站的某处指定文本。
我心中已经看到的解决方案,其中一个为每个复选框的脚本,但可能练得很多,有时(是这样的:chckbx.onchange = function(){}
)
我宁愿有一个从不同复选框调用的函数,但是我的JavaScript技能基本上不存在:)
这就是我到目前为止所获得的(当然不起作用)http://jsfiddle.net/Sz3BK/130/
您在问题中标记了jQuery,因此我将提供一个jQuery答案:
您将使用jQuery的on()
方法将事件委托给复选框的非动态祖先:
$('elem').on('change', 'input[type="checkbox"]', function() {
...
});
elem
复选框的非动态祖先在哪里。
在您的JSFiddle中,您的复选框不是动态的,但是假设它是动态的,则最接近的非动态祖先就是文档的body
。因此,我们可以使用:
$('body').on('change', 'input[type="checkbox"]', function() {
testing('hello', '1');
});
您可能需要通过传递“ hello”和“ 1”作为data-*
属性来扩展它:
<input type="checkbox" name="test" data-newvalue="hello" data-spanid="1" />
<input type="checkbox" name="test" data-newvalue="second" data-spanid="2" />
在这里,我用我们的两个data-*
属性创建了两个复选框。在我们的jQuery方法中,我们可以testing()
使用jQuery的data()
方法提取这些值并将其传递到我们的函数中:
$('body').on('change', 'input[type="checkbox"]', function() {
testing($(this).data('newvalue'), $(this).data('spanid'));
});
然后,我们可以修改testing()
函数以也使用jQuery:
function testing(newValue, spanID) {
$('#'+spanID).text(newValue);
}
这将拉出我们的spanID(例如“ 1”)并将其放置在ID选择器中$('#1')
,然后使用jQuery的text()
方法修改文本。如果您想修改HTML,则jQuery也有一个html()
用于此目的的方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句