Ros*_*ler 3 html javascript checkbox jquery
对你来说这可能很简单,但我被卡住了,所以我希望你能帮助我.
我正在通过循环创建复选框,并且如果单击一个复选框,则希望在网站的某处指定文本.
我心中已经看到的解决方案,其中一个做一个脚本每个复选框,但这种情况可能练得很多,有时(是这样的:chckbx.onchange = function(){})
我宁愿有一个从不同的复选框调用的函数,但我的javascript技能基本上不存在:)
这是我到目前为止所得到的(当然不能正常工作) http://jsfiddle.net/Sz3BK/130/
你的问题中有jQuery标记,所以我将提供一个jQuery答案:
您将使用jQuery的on()方法将事件委派给复选框的非动态祖先:
$('elem').on('change', 'input[type="checkbox"]', function() {
...
});
Run Code Online (Sandbox Code Playgroud)
elem复选框的非动态祖先在哪里?
在你的JSFiddle中,你的复选框不是动态的,但假设它是,它最接近的非动态祖先就是文档body.因此,我们可以使用:
$('body').on('change', 'input[type="checkbox"]', function() {
testing('hello', '1');
});
Run Code Online (Sandbox Code Playgroud)
您可能希望通过传入"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" />
Run Code Online (Sandbox Code Playgroud)
在这里,我创建了两个带有两个data-*属性的复选框.在我们的jQuery方法中,我们可以testing()使用jQuery的data()方法提取这些值并将它们传递给我们的函数:
$('body').on('change', 'input[type="checkbox"]', function() {
testing($(this).data('newvalue'), $(this).data('spanid'));
});
Run Code Online (Sandbox Code Playgroud)
然后我们可以修改我们的testing()函数以使用jQuery:
function testing(newValue, spanID) {
$('#'+spanID).text(newValue);
}
Run Code Online (Sandbox Code Playgroud)
这会拉动我们的spanID(例如"1")并将其放在ID选择器中$('#1'),然后使用jQuery的text()方法修改文本.如果你想修改HTML,jQuery也有一个html()方法用于此目的.
| 归档时间: |
|
| 查看次数: |
3471 次 |
| 最近记录: |