2012-08-27 10 views
8

favor me ayude a resolver esto:Retire el elemento DOM partir de una variable con jQuery

tengo esto:

var text='<li id="job1">Job 1</li>'+ 
     '<li id="job2">Job 2</li>'+ 
     '<li id="job3">Job 3</li>'; 

y quiero eliminar un elemento, algo como esto:

$("#job2",$(text)).remove(); 

esto no funciona. ¿Hay alguna forma de hacerlo? Gracias.

EDIT: Y quiero guardar el resultado volver al texto:

text='<li id="job1">Job 1</li><li id="job3">Job 3</li>'; 

Respuesta

3

su var text es sólo una variable que es la celebración de una cadena

<li id="job1">Job 1</li><li id="job2">Job 2</li><li id="job3">Job 3</li>

y la cadena no es un objeto por lo que no puede usar .remove()


Pero una vez que usted hace por ejemplo:

$('#someElement').append(text);

de lo que simplemente puede hacer:

$('#job2').remove();

y recuperar su nueva cadena mediante:

text = $('#someElement').html(); // '<li id="job1">Job 1</li><li id="job3">Job 3</li>' 
+1

Owwww, sí. Muchas gracias, necesito esto. – petkopalko

+0

@petkopalko de nada –

+0

Pero una vez que lo envuelva en '$()' se convertirá en objeto jQuery. – Vins

3

Trate así ...

* Actualización FIDDLE Mi primera versión del código de $(text).find("#job2").remove(); hizo' Funcioné en jsfiddle, pero cuando agregué <ul></ul> al código funcionó como un hechizo. No tengo idea de por qué no funcionó con la primera instancia sin ul Y no veo ninguna ocasión donde li vendrá sin ul Por favor intente así.

var text='<ul><li id="job1">Job 1</li>'+ 
     '<li id="job2">Job 2</li>'+ 
     '<li id="job3">Job 3</li></ul>'; 

$text = $(text); 
// console.log($text); 
$text.find("li#job2").remove(); 
// console.log($text.find("li#job2")); 
$('div').append($text);​ 
3

si desea eliminar 'job2' del texto

$(text).find("#job2").remove(); 
+0

Y cómo guardar el resultado a la variable? – petkopalko

+0

+1 por simplicidad. @petkopalko, la variable 'text' contendrá la nueva cadena (modificada). – David

Cuestiones relacionadas