我有一个帖子列表,我想删除除“内容设置”以外的所有文字/ HTML内容。
原始
<li id="post">
<p>
<strong>Reality</strong>
</p>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
</p>
</li>
<li id="post">
<p>
<strong>Buzz</strong><br>
<br>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
</p>
</li>
<li id="post">
<p>
<strong>Innovation</strong><br>
<br>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
</p>
</li>
期望的结果
<li id="post">
Reality
</li>
<li id="post">
Buzz
</li>
<li id="post">
Innovation
</li>
如何使用JQuery执行此操作?
答案 0 :(得分:1)
以下代码按预期工作。 将id="post"
替换为class="post"
!!
小提琴:http://jsfiddle.net/GfsCB/
$("li.post").each(function(){
var filtered = $("<li>").append($("strong", this).text())
$(this).replaceWith(filtered);
});
<li>
项目。<li>
元素,并附加所有<strong>
元素的文字内容<li>
元素(<li>
)替换当前选定的filtered
元素。答案 1 :(得分:0)
我的解决方案是制作一个选择器,选择所有强$(“强”),然后删除所有li,然后删除$(“strong”)中的.each项,将其附加到新的li中。
答案 2 :(得分:0)
这应该可以帮助你:
var htmlText = "";
$('.post').find('strong').each(function() {
htmlText += "<li class=\"post\">" + $(this).text() + "</li>";
});
alert(htmlText);
答案 3 :(得分:0)
$('.post').each(function(){
$(this).html($('strong', this).text());
});
将id =“post”更改为class =“post”,因为其他人也会声明。
答案 4 :(得分:0)
假设您要将id='post'
更改为class='post'
(id
s应该是唯一的):
$("li.post").each(function() {
$(this).text($(this).find("strong").text());
});
这将保留与列表项关联的所有属性,并仅替换内容。
答案 5 :(得分:0)
我的解决方案是制作一个选择器,选择所有强$(“强”),然后删除所有li,然后删除$(“strong”)中的.each项,将其附加到新的li中。
更新
您可以尝试:http://jsfiddle.net/6awfe/
$("li#post").each( function()
{
$(this).html("[strong start tag]" + $("strong", this).html()+"[strong end tag]");
} )