2010-05-28 5 views
0

Par exemple, j'ai ce code HTML:Comment innerHTML un tag HTML sans identifiant?

<div id="canvas"> 
    <div id="root"> 
     <div id="content"> 
      <span> 
       <title>My SVG Example Title</title> 
       <ellipse id="svg_1" /> 
      </span> 
     </div> 
    </div> 
</div> 

Comment puis-je innerHTML la balise <span> sans changer l'étiquette <title> utilisant jQuery? Donc, mon résultat attendu serait quelque chose comme ceci:

<div id="canvas"> 
    <div id="root"> 
     <div id="content"> 
      <span> 
       <title>My SVG Example Title</title> 
       <input type="text" value="this is the innerHTML I must insert but how?" /> 
      </span> 
     </div> 
    </div> 
</div> 
+3

pourquoi Y a-t-il une balise de titre dans la durée? @ _ @ – corroded

+0

C'est un tag SVG – marknt15

Répondre

3
$('#canvas') 
.find('span') 
.contents() 
.not('title') 
.replaceWith($('<input />', { 
    type: 'text', 
    value: 'this is the innerHTML I must insert but how?' 
})); 
+0

Nice. Merci jAndy et à tous ceux qui ont répondu :) – marknt15

0

Retirez l'élément ellipse et ajoutez votre élément input:

$("#content span ellipse").remove() 
var input = $("<input>").attr("type", "text").attr("value", "foo"); 
$("#content span").append(input); 
+0

bien, vous avez raison. mais il n'a pas mentionné que la structure est toujours comme ça. – jAndy

2

je ferais ceci:

var newHtml = '<input type="text" value="NewStuff!" />'; 

$("#svg_1").after(newHtml).remove(); 
Questions connexes