2016-05-16 50 views
1

我的列表组中的第一项有'</a>'插入页面时被删除,我的问题是为什么以及如何解决这个问题?如果我在插入之前和之后控制生成的html,那么丢失的标记就在那里。使用jQuery插入到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中测试了这一切,结果相同。 我在做什么错?

回答

2

你没有关闭报价在你的第一个div:

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

将其更改为:

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

,它会工作。这是因为第一个撇号正在关闭这个div并且使锚标记无效。