0 jquery
我有一个HTML表单,我将在用户填充输入字段时将值从一系列输入字段复制到某些跨度/标题.我能够使用以下代码实现此功能:
$('#source').keyup(function(){
if($("#source").val().length == 0){
$("#destinationTitle").text('Sample Title');
}else{
$("#destinationTitle").text($("#source").val());
}
});
Run Code Online (Sandbox Code Playgroud)
在上面的场景中,html是这样的:
样本标题基本上,当用户填写源框时,文本将更改为源输入的值.如果没有输入任何内容,或者用户删除了在框中键入的值,则会在其中放置一些默认文本.非常直截了当.但是,由于我需要为许多不同的领域开展这项工作,因此将其转换为通用函数然后将该函数绑定到每个onkeyup()事件是有意义的.但是我遇到了一些麻烦.我的实施:
function doStuff(source,target,defaultValue) {
if($(source).val().length == 0){
$(target).text(defaultValue);
}else{
$(target).text($(source).val());
}
}
Run Code Online (Sandbox Code Playgroud)
其名称如下:
$('#source').keyup(function() {
doStuff(this, '"#destinationTitle"', 'SampleTitle');
});
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚的是如何将第二个参数,目标html元素的名称传递给函数.我通过"this"传递我绑定的元素没有问题,但无法弄清楚目标元素语法.
任何帮助将不胜感激 - 非常感谢!
像这样称呼它:
$('#source').keyup(function() {
doStuff(this, '#destinationTitle', 'SampleTitle');
});
Run Code Online (Sandbox Code Playgroud)
这只是一个字符串:)
如果元素与另一个元素相关,则可以使它成为通用元素,例如,如果#destinationTitle总是在下一个div,下一个表格单元格中等等...总是在相同的相对位置,您可以使所有键绑定更干净,如果您发布一些示例标记,我会告诉您如何.