Javascript函数参数转换为jQuery或HTML标签
Javascript function parameter into jQuery or HTML tags
这是我创建输入字段的原始代码:
$('#dynamicForm').append('<li id="pdport"></li>');
$('#pdport').append("<label for='sport'>Destination port</label>")
$('<input>').attr({type: 'text', id: 'dport', name: 'dport'}).appendTo('#pdport');
$('#pdport').append("<span>Enter the destination port here (0-65535)</span>");
我没有一遍又一遍地做这段代码,而是尝试为它创建一个函数
function createInputfield(mainID, childID, labelFor, labelText, spanText){
$(mainID).append('<li id=childID></li>');
$(childID).append("<label for=labelFor>labelText</label>")
$('<input>').attr({type: 'text', id: labelFor, name: labelFor}).appendTo(childID);
$(childID).append("<span>spanText</span>");
}
而不是调用函数
createInputfield("#dynamicForm", "#psport", "sport", "Source port", "Enter the source port here (0-65535)");
这样,我可以创建许多动态输入字段,而无需复制/粘贴大量相同的代码。
问题是这不起作用,我总是收到语法错误,就像你不能在 mainID 和其他上附加一样。我尝试了很多不同的方法来实现这一目标,例如使用引号,使用单引号,没有..但似乎没有任何效果。
你忘了转义你的变量并将它们连接到字符串
function createInputfield(mainID, childID, labelFor, labelText, spanText){
$(mainID).append('<li id='+childID.replace('#','')+'></li>');
$(childID).append("<label for="+labelFor+">"+labelText+"</label>")
$('<input>').attr({
type: 'text',
id: labelFor,
name: labelFor
}).appendTo(childID);
$(childID).append("<span>"+ spanText +"</span>");
}
这可能有效
> Marvin 很接近。他发现缺少字符串连接。您还忘记了您正在发送以#
开头的字符串,但正在使用那些不能接受以 #
开头的字符串的字符串。
更新:看起来马文也抓住了#
的使用。他选择剥离它。我的解决方案将哈希添加到需要的位置,因此您不必担心将哈希传递到函数中。
.JS:
function createInputfield(mainID, childID, labelFor, labelText, spanText){
$('#'+ mainID).append('<li id=' + childID + '></li>');
$('#'+ childID).append('<label for=' + labelFor + '>' + labelText + '</label>')
$('<input>').attr({type: 'text', id: labelFor, name: labelFor}).appendTo('#'+ childID);
$('#'+ childID).append('<span>' + spanText + '</span>');
}
createInputfield("dynamicForm", "psport", "sport", "Source port", "Enter the source port here (0-65535)");
演示:https://jsfiddle.net/hopkins_matt/6xyjawgs/
拿一个妈妈来说,这是我的代码,期望喜欢它,我将对象连接在数组中,然后将它们放在一起
function createInputfield(mainID, childID, labelFor, labelText, spanText){
var elms = [
$('<label for=' + labelFor + ' />').text(labelText),
$('<input />').attr({type: 'text', id: labelFor, name: labelFor}),
$('<span />').text(spanText)
];
$('<li id=' + childID + '></li>').append(elms).appendTo('#'+ mainID)
}
createInputfield("dynamicForm", "psport", "sport", "Source port", "Enter the source port here (0-65535)");
希望你喜欢
相关文章:
- 如何在tinymce编辑器中将点击事件绑定到html标签
- 如何将具有相同功能的两个select html标签的两个JS组合在一起
- 带有html标签的Summernote内容
- 为什么我的HTML标签消失了
- 如何忽略单词like“”中的未使用空格;测试-文本”;同时构建html标签
- 在AngularJS中过滤-html标签中的文本
- 如何在另一个 html 标签内选择 web 元素硒 Web 驱动程序与 html 源
- 我怎么能"合并”;两个HTML标签
- JavaScript if else 语句来显示 html 标签
- 在 JavaScript 中实现 HTML 标签
- 如何用jQuery替换HTML标签的一部分
- 在javascript文件中编写html标签而不是“text”
- 窗口确认在 AJAX 帖子中打印 HTML 标签
- 如何在javascript函数中弹出php(与html标签混合)文件
- HTML标签的问题与Javascript一致
- 使用Javascript获取所有html标签
- 如何从JavaScript外包HTML标签
- Ckeditor:如何在mysql中避免使用Ckeditor中的html标签来节省时间
- 如何在 jquery 和 javascript 中检索 html 标签属性
- 如何获取html标签的字体大小