使用 jQuery 替换 HTML
Replace HTML Using jQuery
function toText()
{
var convertHTML =$('#mainContent').html();
var ele = $(convertHTML + " > span").each(function(){
$(this).replaceWith($(this).text());
});
console.log(ele);
}
我的目标是替换以下内容
<div id="mainContent">
test
<br>
1234
<br>
<span class="underline">test</span>
<br>
<span class="underline">1234</span>
</div>
并希望我的函数输出测试<br> 1234 <br> test <br> 1234
这就是为什么我不能只使用 text(( 因为它也带走了<br>
!
像这样尝试:
function toText()
{
var ele = $("#mainContent > span").each(function(){
$(this).replaceWith($(this).text());
});
console.log(ele);
}
你在哪里使用整个 html 块作为 jQuery 选择器:)
您正在获取从$("#mainContent").html()
返回的 html 字符串并尝试将其用作下一行选择器的一部分,而实际上您需要的选择器是"#mainContent > span"
.
试试这个:
function toText()
{
$("#mainContent > span").replaceWith(function(){ return $(this).text(); });
}
你不需要.each()
循环:如果你传递一个函数来.replaceWith()
那么对于jQuery对象中的每个元素,该函数被调用一次,并且你的返回值被用作当前元素的替换。
演示:http://jsfiddle.net/7xKzP/
来自 var convertHTML =$('#mainContent').html();
的convertHTML
不是 jQuery 对象
你将不得不写
var ele = $("#mainContent > span").each(function(){
$(this).replaceWith($(this).text());
});
原因:
$('#mainContent').html();
将返回string
而不是 jQuery 对象,供$.each
工作。
var ele = $(convertHTML + " > span")
意味着
var ele = $("test<br>1234<br><span class="underline">test</span><br><span class="underline">1234</span>" + " > span")
相关文章:
- 用JavaScript替换Android WebView模板上的html文本
- 用任意html替换ExtJS组件的内容
- 如何用一些已编译的HTML替换元素的值
- 使用 Javascript 将 html 替换为 html
- 将HTML替换为Mobile Design中的图像.比如Paypal.com
- 我可以用JS或HTML替换屏幕吗?
- 如何使用 JS 将 HTML 替换为另一个 HTML 块
- 用带有javascript的新HTML替换HTML
- SVG/XML中是否有一些内部HTML替换
- Javascript Slider标题将html替换为只处理第一项的标题
- 用格式化的html替换句子中的单词
- javascript用多个html替换()多个bbcode实例
- 用字符串中包含的一些HTML替换HTML元素
- 在Google Apps Script中用HTML替换文本
- 简单的Javascript HTML替换
- 如何通过jquery/javascript将我的旧html替换为新html
- 如何在contenteditable元素中用html替换所选文本
- 循环遍历元素数组,将html替换为data
- 如何用页面上的另一段HTML替换一段HTML
- 用内联html替换字符串