Javascript 如何使用jQuery元素创建/追加生成html?
我需要生成一个复选框的HTML。我使用以下函数生成复选框,该函数使用js字符串连接生成一大块HTML:Javascript 如何使用jQuery元素创建/追加生成html?,javascript,jquery,html,ajax,append,Javascript,Jquery,Html,Ajax,Append,我需要生成一个复选框的HTML。我使用以下函数生成复选框,该函数使用js字符串连接生成一大块HTML: function getColvisCheckboxHTML(){ // Generates the html for the checkboxes in the column visibility modal var checkboxes = ''; var tableheaders = table.columns().header(); for(var i = 1;i < tabl
function getColvisCheckboxHTML(){
// Generates the html for the checkboxes in the column visibility modal
var checkboxes = '';
var tableheaders = table.columns().header();
for(var i = 1;i < tableheaders.length;i++){
var colindex = tableheaders[i-1].getAttribute('data-column-index');
var colname = tableheaders[i-1].getAttribute('aria-label').split(':')[0];
// Don't include ID column, this column should always be visible
if(colname != 'ID'){
checkboxes += '<label class="col-md-2 checkbox-inline"><input type="checkbox" value="' +
colindex + '">' + colname + '</label>';
}
// Display flags in rows of 5
if(i%6==0){
checkboxes += '<br />';
}
};
return checkboxes;
};
我被告知生成HTML的方法不正确,为了可读性,我应该使用jQuery元素创建/追加。我的问题是,使用这种方法我的代码会是什么样子?我开始尝试另一种方法,但我只能想到:
$('<label>', {
"class": "col-md-2 checkbox-inline"
}).append(
$('<input/>', {
"type": "checkbox"
$(“”{
“类”:“col-md-2复选框内联”
}).附加(
$('', {
“键入”:“复选框”
任何建议都会很棒。谢谢!请尝试查看以下文档: 同样,在您的样本中,您可以有如下内容:
$("label.col-md-2 checkbox-inline").append("YOUR HTML HERE");
希望有帮助。:标签本身可能位于相关控件之前、之后或周围
<label for="lastname">Last Name</label>
<input type="text" id="lastname" />
姓氏
尝试:
var container = $('<div>');
container.append('<label class="col-md-2 checkbox-inline"></label>);
container.append('<input type="checkbox" name="my_name" />);
// OR
var container = $('<div>');
$('<input />', { type: 'checkbox', id: 'cb_id', value: name }).appendTo(container);
$('<label />', { 'for': 'cb_id', text: name, class: 'col-md-2 checkbox-inline' }).appendTo(container);
var容器=$('');
container.append(');
container.append(');
//或
变量容器=$('');
$('',{type:'checkbox',id:'cb_id',value:name});
$(“”,{'for':'cb_id',text:name,class:'col-md-2 checkbox inline'});
您可以使用$(jquery)
表达式添加属性和样式,而不是将标记定义和添加为字符串。这将消除转义字符或任何语法问题的麻烦
var ele = $('<input>').addClass("green").attr("value","test").css("color","green");
$('div').append(ele);
var ele=$('').addClass(“绿色”).attr(“值”、“测试”).css(“颜色”、“绿色”);
$('div')。追加(ele);
这是一个例子:
你原来的方式可能更有性能,但是使用jQuery这样做可能更可读。不过我并不特别喜欢你这样做。个人来说,我可能不会这样做。我会考虑使用一些模板,比如JSrEdt,它帮助你将标记与业务逻辑分开。在我尝试更改或发布我的初始问题之前,我阅读了第一份文档。我仍然对执行感到困惑。实现此操作后,您的预期输出是什么?我的预期输出应该是一组带有列名作为标签的复选框。这些复选框应该显示在html模式窗口中。用于修改的htmlal弹出窗口已设置。我只需要在内部显示复选框及其标签。好的,请注意,在使用附加之前,您需要先创建容器。如果您也在动态创建容器,您可能希望使用变量来保留复选框,并在显示容器之前添加它。var ele = $('<input>').addClass("green").attr("value","test").css("color","green");
$('div').append(ele);