我有一个类似下面的代码,我想删除在页面加载时动态创建的字符串:
<nav id="navtop"> Dynamically generated text here
<ul><li>Item 1</li><li>Item 2</li>...</ul></nav>
问题是如何从标记文本值中删除此字符串“动态生成的文本”(由页面加载时由脚本动态生成)?
我正在考虑使用此代码,但它没有做到这一点:
var str = "dynamic text";
var $holder = $('#navtop');
var value = $holder.text();
if(value == str){
$holder:contains(str).remove();
$( "value:contains('dynamic text')" ).remove();
非常感谢任何帮助。
答案 0 :(得分:0)
您可以执行以下操作 -
var ulText = $('#navtop ul').text();
var navText = $('#navtop').text();
var textToRemove = navText.substring(0, navText.indexOf(ulText));
$('div').html(textToRemove);
$('#navtop2').html($("#navtop2").html().replace(textToRemove, ''));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Original DOM:
<nav id="navtop">Dynamically generated text here
<ul>
<li>Item 1</li>
<li>Item 2</li>...</ul>
</nav>
Text to remove:
<div></div>
<br/>
<br/>After removing dynamic text:
<nav id="navtop2">Dynamically generated text here
<ul>
<li>Item 1</li>
<li>Item 2</li>...</ul>
</nav>
<span></span>
答案 1 :(得分:0)
首先将ul
的内容存储在临时变量中:
var inside = $("#navtop ul").clone();
使用此代码:
$("#navtop").html(inside);