2013-07-16 109 views
2

jquery有没有办法去除Ember.js生成的<script>标签?从jQuery选择器中删除Ember.js脚本标签.html()

<script id="metamorph-107-start" type="text/x-placeholder"></script> 
<script id="metamorph-125-start" type="text/x-placeholder"></script>foo-bar-text<script id="metamorph-125-end" type="text/x-placeholder"></script> 
<script id="metamorph-107-end" type="text/x-placeholder"></script> 

我只想要foo-bar-text。这里是我目前使用的选择器:

$(".control-group .controls .data").html(); 

返回上面的内容。

+0

foo-bar-text从哪里来?从一个像{{foo}}这样的绑定语句? – intuitivepixel

回答

3

“我只想要foo-bar-text”。

你可以只使用jQuery的text()方法,那么在这种情况下:

$(".control-group .controls .data").text(); 

或者,使用纯香草的JavaScript:

document.querySelector('.control-group .controls .data').textContent; 
+1

杜,甚至没有想到这一点。谢谢。 – Justin

+0

@Justin很高兴帮助!我添加了一个纯粹的JS解决方案(如果你需要IE8和之前的支持让我知道),但如果你已经使用jQuery,我会去用text(),因为它更好的兼容性明智:)考虑接受答案,如果它帮助,谢谢! – lifetimes

4

由于问题被加上ember.js和文本foo-bar-text在脚本metamorph标签内,为了避免使用tose标签,您可以在您的模板中定义它,如

{{unbound myProperty}} 

这样你只能用你的jQuery选择器.html()获得文本,不需要去除脚本标签。