Sky*_*rdw 3 html javascript jquery dom
这是我的HTML:
<ul id="myUL">
</ul>
Run Code Online (Sandbox Code Playgroud)
这就是我正在做的事情:
var myString = " <li><a href="www.google.comp">Google</a></li> <li>Something Else</li>"
var div = document.createElement('div');
div.innerHTML = myString;
$("#myUL").append(div.innerHTML);
Run Code Online (Sandbox Code Playgroud)
这是我收到的:
<ul id="myUL" >
<li><a href="www.google.com">Google</a></li> <li>Something Else</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
这是我想要接受的:
<ul id="myUL">
<li>
<a href="www.google.com">Google</a>
</li>
<li>
Something Else
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
首先请注意,您无法将a附加div到a,ul因为它是无效的HTML.ul只能包含li孩子.
问题本身是因为您的字符串包含转义的HTML.您可以使用纯字符串:
var myString = '<li><a href="http://www.google.comp">Google</a></li><li>Something Else</li>';
$("#myUL").append(myString);Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="myUL"></ul>Run Code Online (Sandbox Code Playgroud)
或者你可以解开字符串:
var myString = "<li><a href="www.google.comp">Google</a></li> <li>Something Else</li>"
$("#myUL").append(htmlDecode(myString));
function htmlDecode(input){
var e = document.createElement('div');
e.innerHTML = input;
return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="myUL"></ul>Run Code Online (Sandbox Code Playgroud)
有关该htmlDecode()功能的更多信息,请参阅此问题.
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |