2017-12-02 7 views
1

jQueryでhtmlコードを作成し、以下のように特殊なhtml文字を処理せずにDOMに追加するための簡単な方法を紹介します。 yyyyを追加しても機能しません。どんな簡単な方法ですか?xhtmlとjQueryにはhtmlを追加する簡単な方法がありますか?

<?xml version="1.0" encoding="UTF-8"?> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title>Title</title> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 

<script> 
$(document).ready(function(){ 


      $("div").append("xxxxx"); 
      $("div").append("<span>yyyyy</span>"); 
      $("div").append("&lt;span&gt;zzzzz&lt;&#x2F;span&gt;"); 


}); 



</script> 


</head> 
<body> 
     <div> 


     </div> 



</body> 
</html> 

答えて

1

あなたがXMLで作業しているときは、YYYYYは、それがscript要素内だにもかかわらず、文字データを解析されます。 (text/html HTMLパーサは、未解析の文字データに切り替えることを知っているが、XMLパーサにはない)

だからあなたはスクリプトの開始時と終了時にCDATA区切り文字<![CDATA[]]>を使用して、明示的に指示する必要があります。だから、:

<?xml version="1.0" encoding="UTF-8"?> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <title>Title</title> 

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.js"></script> 

    <script> 
    <![CDATA[ 

    $(document).ready(function(){ 
     $("div").append("xxxxx"); 
     $("div").append("<span>yyyyy</span>"); 
     $("div").append("&lt;span&gt;zzzzz&lt;&#x2F;span&gt;"); 
    }); 

    ]]> 
    </script> 
    </head> 
    <body> 
    <div> 
    </div> 
    </body> 
</html> 

それとも、あなたはまだZZZZZはあなたが現在それを持っている方法を追加したい場合は、単に$("div").append("<span>yyyyy</span>");線を中心CDATA区切り文字を追加します。

+0

または、難しい方法で対応できます。 'createElement( 'span');'、 'createTextNode( 'yyyyy');などと続きます。これはあまりにも少ない記号を必要としません。しかし、HTMLとXHTML環境を区別する必要がない唯一の方法は、すべてのスクリプトを外部にロードされた.jsファイルに置くことです。 –

+0

素敵なおかげで! –

関連する問題