2012-07-09 63 views
0

如何通过的jQuery或Javascript来得到这个输出:如何通过类名删除没有内容的html元素?

HTML:

This is a <span class="getClass" >test</span> for javascript and jquery Then suppose <span class="getClass" >it</span>. how can i change it in multiple line <span class="getClass" >look</span> like this

输出:

This is a test for javascript and jquery

我已经尝试了一些代码,但它不工作,像:

<Script> 
     $('.getClass').unwrap(); 
</script> 

但它删除父元素而不是元素本身。

我只是有类选择器访问元素,并希望删除整个元素。我无法阅读元素内的文字。

谢谢。

+1

你的标题说, “删除一些”,但是你的主体文本没有提到“某些”。你的意思是应该删除所有的标签吗? – 2012-07-09 12:16:50

+0

对不起,我只是想删除span元素周围。我无法得到测试。我只需访问 – Danial 2012-07-09 12:25:04

+0

元素的类名称即可。因此,如果文本是什么: 这是一个测试
另一个测试
对JavaScript和jQuery ? – 2012-07-09 12:27:48

回答

1

试试这个,

Live Demo

$('.getClass').replaceWith($('.getClass').text()); 

如果你不想改变DOM,但只需要得到不span标记文本,然后你可以使用

$('.getClass').text(); 
+0

好吧,其实我想看起来像这样,但问题是,我有多个'getClass'与不同的文本。 – Danial 2012-07-09 12:37:30

+1

$('。findedColor')。replaceWith(function() { return $(this).text(); }); – Danial 2012-07-09 12:39:53

+0

那你有什么标准来区分类名为.getClass的元素? – Adil 2012-07-09 12:45:30

0

基本上,你只需要文本。使用.text获得将自动剥离所有标签的文本。通过使用.text来设置文本以及您有效地删除它们:http://jsfiddle.net/s4DJP/

$("...").text(function(i, text) { 
    return text; 
}); 
+0

你可以给我这个HTML脚本? – Danial 2012-07-09 12:29:09

+0

@Danial:http://jsfiddle.net/s4DJP/3/。只要把它放在一个容器元素中,并将其设置为文本。 – pimvdb 2012-07-09 12:30:36

+0

它不工作,我试过了 – Danial 2012-07-09 12:43:05

1

你应该能够将其设置为文本内容(见text()

$(containerSelector).text(function (_, text) { 
    return text; 
}); 
+0

你能给我脚本这个HTML吗? – Danial 2012-07-09 12:30:42

+0

@Danial:它取决于你所引用的文本被包含在什么元素中。你所需要做的就是用一个选择器替换“containerSelector”来匹配那个元素。 – Matt 2012-07-09 12:33:42

+0

它不工作,我试过了 – Danial 2012-07-09 12:42:58

0

更通用,使用正则表达式:

$().ready(function(){ 
var htmlstr = 'This is a <span class="getClass" >test</span> for javascript and jquery'; 
var regex = /(<([^>]+)>)/ig; 
    var plainstr = htmlstr.replace(new RegExp(regex), ""); 
    alert(plainstr); 
});​ 

​​