navegadores - jQuery no funciona en Internet Explorer
jquery for ie6 (1)
Tengo una función jquery que devuelve datos JSON
: esta función funciona en Google Chrome, pero no en Internet Explorer (v11).
$(document).ready(function () {
$.ajax({
url: "/../Projects/1/_vti_bin/ListData.svc/Prosjectlist?$select=ID,Tittel,Project_typeValue,Project_heading&$filter=(Project_typeValue%20eq%20%27Type1%27)",
method: "GET",
dataType: "JSON",
headers: { "accept": "application/json; odata=verbose" },
success: function (data) {
$(''#projectRow'').empty();
$.each(data.d.results, function (index, item) {
var itemExist = false;
$.each($(''.projectRow'').find(''h1''), function (index1, item1) {
if (item1.innerHTML == item.Project_heading) {
itemExist = true;
$(item1).parent().append("<h3><a id=''" + item.ID + "'' class=''projectLink'' href=''#''>" + item.Title + "</a></h3>");
}
});
if (itemExist == false)
$(''.projectRow'').append("<div class=''projectHeadingDiv left''><li><h1>" + item.Project_heading + "</h1><h3><a id=''" + item.ID + "'' class=''projectLink'' href=''#''>" + item.Title + "</a></h3></div></li></div>");
});
},
error: function (error) {
alert(JSON.stringify(error));
}
});
Estoy usando jQuery 1.5.2 (Sharepoint 2010 se vuelve borroso si uso algo más nuevo). He estado buscando el depurador en IE11 y la información está allí, simplemente no se agregará a mi div. Parece que append podría ser el culpable, porque si reemplazo .append()
con .html()
puedo ver el último elemento en $each-loop
. P.ej:
$(item1).parent().html("<h3><a id=''" + item.ID + "'' class=''projectLink'' href=''#''>" + item.Title + "</a></h3>");
¿Alguien sabe por qué .append funciona en Chrome y no en IE? La consola no da ningún mensaje de error, y por lo tanto, no hay pistas. Sin embargo, si cambiara el "Modo documento" en las herramientas de desarrollo IE de 8 (predeterminado) a 9 o superior, parece que funciona como debería.
Cualquier ayuda es muy apreciada.
Tienes dos etiquetas de cierre no coincidentes </div></li>
. Reparar HTML y debería funcionar:
<div class=''projectHeadingDiv left''><li><h1>" + item.Project_heading + "</h1><h3><a id=''" + item.ID + "'' class=''projectLink'' href=''#''>" + item.Title + "</a></h3></div>
Chrome y Firefox son más indulgentes con los descuidados desarrolladores. Pero IE es más sensible a este tipo de errores (que en realidad creo que son buenos).