从标记值jquery中删除动态生成的字符串

时间:2015-03-18 02:40:15

标签: javascript jquery html dom dynamic

我有一个类似下面的代码,我想删除在页面加载时动态创建的字符串:

<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();

非常感谢任何帮助。

2 个答案:

答案 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);

Here is a working fiddle