2016-05-16 2 views
1

Das erste Element in meiner Listengruppe hat '</a>' beim Einfügen in die Seite entfernt und meine Frage ist warum und wie behebe ich das? Wenn ich den vor und nach dem Einfügen erzeugten HTML-Code trimme, ist das fehlende Tag da. HierFehlendes schließendes Tag vom ersten in HTML-Seite eingefügten Element mit jQuery

ist der Generator Code:

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); 

Hier ist die HTML-Ausgabe:

<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> 

Als Folge ist das erste Element erscheint nicht als Teil der Liste im Web-Browser und ist nicht anklickbar. Ich habe versucht, append() mit html() ohne Erfolg zu ersetzen. Ich habe das in Chrome, Safari und Firefox alle mit dem gleichen Ergebnis getestet. Was mache ich falsch?

Antwort

2

Sie schließen nicht die Zitate auf Ihrem ersten div:

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

Ändern Sie es an:

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

Und es wird funktionieren. Es passiert, weil das erste Apostroph dieses div schließt und das Anker-Tag ungültig macht.

Verwandte Themen