使用jQuery插入HTML页面的第一个项目缺少结束标记

Missing closing tag from first item inserted into HTML page with jQuery

本文关键字:项目 结束 第一个 插入 jQuery HTML 使用      更新时间:2023-09-26

我的列表组中的第一个项具有'<a> '在插入页面时被删除,我的问题是为什么以及如何解决这个问题?如果我对插入前后生成的html进行控制台操作,那么就会出现丢失的标记。

这是生成器代码:

function ObjMatched(item1, item2) {
    this.item1 = item1;
    this.item2 = item2;
}
var obj_list = '<div class="list-group>';
for (var i = 0; i < Obj.length;i++) {
    if (Obj[i].item1 == selection) {
        ObjMatched.item1 = Obj[i].item1;
        ObjMatched.item2 = Obj[i].item2;
        obj_list += '<a href="#" class="list-group-item" data-item1="' + ObjMatched.item1 + '" data-item2="' + ObjMatched.item2 + '" >' + ObjMatched.item1 + ', ' + ObjMatched.item2 + '</a>';
    }
}
obj_list += '</div>';
$("#obj_block").append(obj_list);

这是HTML输出:

<div id="obj_block">
    <div class="list_group">
        <a href="#" class="list-group-item" data-item1="mary" data-item2="smith">mary, smith
        <a href="#" class="list-group-item" data-item1="tom" data-item2="jones">tom, jones</a>
        <a href="#" class="list-group-item" data-item1="dirty" data-item2="harry">dirty, harry</a>
    </div>
</div>

因此,第一个项目不会作为列表的一部分出现在web浏览器中,并且不可点击。我试过用html()替换append(),但没有成功。我已经在Chrome、Safari和Firefox中测试过了,结果都是一样的。我做错了什么?

您没有在第一个div上结束引号:

var obj_list = '<div class="list-group>';

更改为:

var obj_list = '<div class="list-group">';

它会起作用的。之所以会发生这种情况,是因为第一个撇号关闭了这个div并使锚标记无效。