jQuery连接选择器和文本
我想创建一个元素后面有一些文本添加到一个容器元素。jQuery连接选择器和文本
说我有:
$('<span/>').addClass('glyphicon glyphicon-folder-close') + ' ' + item.name
,我希望这样的工作;有没有办法?
我知道我可以使用add()
像这样:
$('<span/>').addClass('glyphicon glyphicon-folder-close').add(
$('<span/>').html(' ' + item.name)
)
但我可以不用额外的选择?
如果你想将其追加可使用append(item.name)
父做一个文本节点
var $span = $('<span/>').addClass('glyphicon glyphicon-folder-close')
$('.someSelector')
.append($span)
.append(item.name);//will be after span
正如最后一条评论中提到的,如果您在实际的Bootstrap页面上查看,您将意识到CSS已被破坏,而且这不是我所问的做 – Sammaye
好吧,你从来没有提供预期的结果...令人惊讶的26k代表 – charlietfl
尝试使用jQuery.parseHTML(data [, context ] [, keepScripts ])
keepScripts(默认:false)
类型:
Boolean
一个
Boolean
指示是否包括在HTML字符串传递脚本
var nodes = $.parseHTML("<span class=glyphicon glyphicon-folder-close>span</span>"
+ " text node"
, document /* [, keepScripts] default: `false` */);
$("body").append(nodes)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
不... ...我们一直在那条路上......文本是在跨度 – charlietfl
@charlietfl试图解释发布前的评论; '.after()'? – guest271314
编辑很有趣,但如果你不能相信内容呢?似乎对我来说是一个巨大的安全漏洞 – Sammaye
你可以,如果你使用的字符串,但是这有什么错调用jQuery的两次,以创建两个元素 – adeneo
@adeneo代码开销,HTML元素开销,以及在复杂的UI中使用大量的HTML开销 – Sammaye
但是,您正在**创建**元素,而不是获取它们,所以它应该无关紧要,浏览器必须创建这些元素,没有任何开销,如果你需要创建两个元素,没有快捷方式,y你必须创造两个元素。如果你真的想优化,你可以使用'createElement'来代替它,但它仍然会......等待它......创建两个元素,或者克隆第一个元素,但仍然会创建两个元素。 – adeneo