Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery元素创建/追加生成html?_Javascript_Jquery_Html_Ajax_Append - Fatal编程技术网

Javascript 如何使用jQuery元素创建/追加生成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

我需要生成一个复选框的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 < 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);