Jquery 替换与不起作用
Jquery replaceWith not working
Using Jquery 1.7.1
我有两个div
<div class="highlightStart"></div>
{page content here}
<div class="highlightEnd"></div>
这些显示在页面源代码中。但是我在页面底部添加的这个jquery不起作用:
<script type="text/javascript" id="makeHighlight">
$(document).ready(function () {
$("div.highlightStart").replaceWith("<section class='highlight'>");
$("div.highlightEnd").replaceWith("</section>");
});
</script>
浏览器控制台(Chrome)中没有显示JavaScript错误。只是什么都没有被取代。
首先,我想指出您正在产生不正确的 DOM 结构。如果您的脚本将运行,它将如下所示:
<div class="highlightStart"><section></div>
{page content here}
<div class="highlightEnd"></section></div>
如果你想有,这不是一个好的结构:
<section>
{page content here}
</section>
应该是这样的:
您的 DOM:
<div id="content">
{page content here}
</div>
在您的脚本中:
$(document).ready(function () {
content = $('#content').text();
$('#content').html($('<section>').text(content));
});
请参阅我的小提琴以供参考
replaceWith 方法需要整个元素,而不是标记。您需要使用新元素包装页面内容,然后删除两个原始div。
更新:这可能会让您接近:
$(document).ready(function () {
$('.highlightStart').nextUntil('.highlightEnd').andSelf()
.wrap('<section class="highlight"></section>');
$('.highlightStart, .hightlightEnd').remove();
});
http://jsfiddle.net/isherwood/H36UE
这有点不对劲,但我没时间了。祝你好运。
基于isherwood的帮助,使用这个作为解决方案:
http://jsfiddle.net/H36UE/1/
使用这样的 HTML 树:
<div><div><div class="highlightStart">highlightStart</div></div></div>
<div>Outside<div>Content to Highlight</div>More</div>
<div>second</div>
<div>third</div>
<div><div><div class="highlightEnd">highlightEnd</div></div></div>
这个Javascript:
$(document).ready(function () {
$('.highlightStart').parent().parent().replaceWith("<div class='highlightStart'>");
$('.highlightEnd').parent().parent().replaceWith("<div class='highlightEnd'>");
$('.highlightStart').nextUntil('.highlightEnd').andSelf().wrapAll("<section class='highlight'>");
$('.highlightStart, .highlightEnd').remove();
});
相关文章:
- 替换变量时,JavaScript字符串replace()不起作用
- getComputedStyle替换:currentStyle(IE8/7)不起作用
- 替换字符串的脚本;在某些网站上不起作用
- .clone().appendTo-替换不起作用的元素样式
- 为什么不'使用此JavaScript将文本替换为不起作用的链接
- jquery替换不起作用
- jQuery用点替换逗号不起作用
- .keyup() 上的非拉丁字符替换在快速键入时不起作用
- 替换 JavaScript 中出现的所有字符串不起作用
- 替换函数后的Javascript比较字符串不起作用
- 使用replace方法替换innerHTML以及在Javascript中不起作用的正则表达式
- 为什么javascript替换方法(没有regex)在angularjs表达式中不起作用来删除 
- :包含不区分大小写的解决方案在替换文本以突出显示时不起作用
- Javascript字符串替换不起作用
- I'我试图制作一个chrome查找和替换扩展,但它赢了;不起作用
- 如果我用fadeTogle替换fadeIn/fadeOut,为什么它不起作用
- 使用替换函数替换 XML 标记不起作用
- jQuery |字符串替换不起作用
- 字符串替换在javascript中不起作用(使用双引号)
- 全局替换不起作用,但简单的替换工作正常