用jQuery替换标签的某些部分

时间:2015-11-05 13:19:07

标签: jquery replace add

我遇到以下问题:我在网站上使用了一个视频,想要在灯箱中打开它。我的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>

3 个答案:

答案 0 :(得分:0)

不是将html作为文本操作,而是使用jQuery操作属性

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

jQuery Selector

$("[href$='.mp4']").attr("data-lightbox", "video")

你可以像这样使用数据:

$("[href$='.mp4']").data("lightbox", "video")

但这不会改变html,只能通过使用数据(“lightbox”)来读取。话虽如此,如果要为灯箱插件注册锚点,第二种方法可能会起作用,我会说有点清洁。

答案 1 :(得分:0)

尝试使用此代码

 jQuery('.mp4').attr('data-lightbox','video')

答案 2 :(得分:0)

试试这个,没有经过测试!

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除了加速之外没有任何理由 - 不确定替换中的>是否需要转义并且现在无法进行测试