问题描述
请问我下面代码执行后为什么不能达到预期效果。我希望克隆列表中的所有连接并把他们包装到一个div标签里。大家帮忙分析下,谢谢!jquery代码如下:$(function(){var copy = $('.myList li a').clone();copy.wrap($('#myDiv'));});html代码缩影:<div id="someDiv">This is a <div> with an id of <tt>someDiv</tt></div><div id="myDiv" title="myTitle1"><span>Hello</span></div><div title="myTitle2"><span>Goodbye</span></div><ul class="myList"> <li><a href="http://jquery.com">jQuery supports</a> <ul> <li><a href="css1">CSS1</a></li> <li><a href="css2">CSS2</a></li> <li><a href="css3">CSS3</a></li> <li>Basic XPath</li> </ul> </li> <li>jQuery also supports <ul> <li>Custom selectors</li> <li>Form selectors</li> </ul> </li></ul> 问题补充:winner720 写道
解决方案
wrap是包裹功能。(按照你的需求不该用wrap)详细信息见jquery文档返回值:jQuery wrap(elem) 概述把所有匹配的元素用其他元素的结构化标记包装起来。参数elemElement用于包装目标元素的DOM元素示例描述:用ID是"content"的div将每一个段落包裹起来HTML 代码:<p>Test Paragraph.</p><div id="content"></div>jQuery 代码:$("p").wrap(document.getElementById('content'));结果:<div id="content"><p>Test Paragraph.</p></div><div id="content"></div>
解决方案二:
copy.wrap($('#myDiv')); 改成:copy.appendTo("#myDiv"); 或者 $("#myDiv").append(copy);