2009-09-14 13 views
11

Estoy usando jQuery para agregar contenido dinámico a un sitio web.jQuery "El objeto no admite esta propiedad o método" en Internet Explorer

Estoy intentando crear un nuevo elemento DOM bajo demanda usando el siguiente código:

container = $('<div id="myContainer"></div>'); 

Esto funciona perfectamente en Firefox y Safari, pero Internet Explorer es la generación de un error. El error de IE es: Object doesn't support this property or method

Sé que jQuery se está cargando correctamente y he intentado con la sintaxis jQuery y $.

¿Alguna idea de qué podría estar causando esto?

Respuesta

10

Si desea agregar un elemento DOM, el código debe ser modificado un poco:

$('body').append('<div id="myContainer"></div>'); 
// body can be whatever containing element you want to hold myContainer 
$('#myContainer').html('whatever you want inside of myContainer'); 
+1

Aún no sabe por qué el el método original no funcionaba (ya que jQuery lo incluye), pero su método era una alternativa perfecta. Gracias. –

+0

Sí, probado y funciona para mí también. Gracias, inkedmn! –

21

No sé si puede ayudar, pero me fijo mi problema. Básicamente IE no quiere asignar el objeto jquery a una variable indefinida.

Entonces, lo que hice fue declarar esto como una variable local.

Antes:

function foo() { 
    bar = $('#bar'); 
} 

Después:

function foo() { 
    var bar = $('#bar'); 
} 
+1

Funcionó para mí. es posible que me salvó mucha frustración :) gracias – theosp

+0

Perfecto, funcionó para mí también. – Roy

+0

Esta es la respuesta correcta. No me di cuenta de que había sido descuidado y tenía 'parent = $ ('# elem')' cuando necesitaba 'var parent = $ ('# elem')'. Por una vez estoy de acuerdo con IE. Si voy a nombrar una variable como el nombre de una variable global existente, es mejor que primero la declare como una nueva variable. – Gavin

2

que tenía un problema similar. Internet Explorer arroja este error cuando intentas modificar un símbolo global. Este es el caso no solo para palabras reservadas. Mi ejemplo fue:

function foo() { 
    iframe = $("myDiv").append("<iframe></iframe>"); 
} 

Esto resuelve que:

function foo() { 
    var iframe = $("myDiv").append("<iframe></iframe>"); 
} 

Esto también:

function foo() { 
    myIframe = $("myDiv").append("<iframe></iframe>"); 
} 

(pero la primera es mejor estilo de todos modos)

Cuestiones relacionadas