用jQuery替换标记的某些部分

用jQuery替换标记的某些部分,jquery,replace,add,Jquery,Replace,Add,我有以下问题:我在我的网站上使用一个视频,想在一个灯箱中打开它。我的CMS不允许我只打开灯箱中的一个视频,但我认为技术背景对这个问题来说太多了,所以现在我想做什么: 我想用jQuery在我的链接中查找视频,如“.mp4>”我想用以下内容替换或扩展此部分:“.mp4 data lightbox=Video>” 我尝试的第一个精简是.replaceWith,但我认为它只适用于类或ID?也许代码错了 $('.mp4">').replaceWith('.mp4" data-lightbox="vi

我有以下问题:我在我的网站上使用一个视频,想在一个灯箱中打开它。我的CMS不允许我只打开灯箱中的一个视频,但我认为技术背景对这个问题来说太多了,所以现在我想做什么:

我想用jQuery在我的链接中查找视频,如“.mp4>”我想用以下内容替换或扩展此部分:“.mp4 data lightbox=Video>”

我尝试的第一个精简是.replaceWith,但我认为它只适用于类或ID?也许代码错了

$('.mp4">').replaceWith('.mp4" data-lightbox="video">');
我使用了不同的搜索方法,但我认为大多数都是针对文本更改或ID和类的更改

我要找的是一些可以处理HTML的东西,这样它就可以替换或添加代码,这是必要的

问候,, 马库斯

编辑:HTML:

    <a title="title" href="/files/videos/abc/abc.mp4">
<img alt="title" src="assets/images/f/abc.png">
</a>

我可能会使用jQuery操作属性,而不是将html作为文本进行操作

这将选择任何以.mp4结尾的href,如果不是href,则可以将href更改为任何属性名称

jQuery选择器

$("[href$='.mp4']").attr("data-lightbox", "video")
您可以像这样使用数据:

$("[href$='.mp4']").data("lightbox", "video")
但这不会改变html,只能使用datalightbox读取。话虽如此,如果要为lightbox插件注册锚点,第二种方法可能会起作用,我想说的是更干净一点。

试试这段代码

 jQuery('.mp4').attr('data-lightbox','video')
试试这个,不要测试

var content = $(body); // get content outer

var str = '.mp4" data-lightbox="video">'; // replacement string

var contentInside = content.innerHTML; // now get inner content

var newContent = contentInside.replace(/.mp4">/g, str); // replace ALL occurrences

$(body).html(newContent); // repopulate the outer

希望这能起到作用-混合香草和jquery只是为了加快速度-不确定替换中的>是否需要转义并且现在无法测试

如果查找replaceWith,您将看到它完全替换包含mp4值的元素?显示示例htmlI编辑为html到代码这将删除绑定到域中所有元素的事件处理程序是的,它将-我只是回答OP-即使这样,他们也需要文档查找,而不是简单的点击数据灯箱