support navegadores internet ie9 ie6 for con compatibilidad jquery internet-explorer google-chrome sharepoint

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