2015-11-05 54 views
0

我有以下问题:我在我的网站上使用视频并希望在Lightbox中打开它。我的CMS不给我在Lightbox中打开一个视频的可能性,但我认为技术背景对于这个问题太多了,所以现在我想要做的事情:用jQuery替换标签的某些部分

我想用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> 
+0

如果你看'replaceWith()'你会发现它完全替换了元素 – charlietfl

+0

什么属性包含'mp4'值?显示示例html – charlietfl

+0

我编辑到的html代码 – Sukrams

回答

0

而不是操纵HTML文本我会使用jQuery

可能操纵的属性这将选择任何与HREF结局与.mp4,您可以更改href,无论属性名称是否如果它不是href

jQuery Selector

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

你可以使用数据,而不是像这样:

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

,但这不会改变HTML,只会用数据(“收藏夹”)被读取。话虽如此,如果要注册一个灯箱插件的锚点,第二种方法可能会起作用,我会说是更清洁一点。

+0

即可使用,谢谢! – Sukrams

0

尝试使用此代码

jQuery('.mp4').attr('data-lightbox','video') 
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用于其他任何原因,而不是加速它 - 不知道,如果在该>更换将需要逃逸,无法测试,现在

+0

这将删除绑定到dom中的所有元素的事件处理程序 – charlietfl

+0

是的,它会 - 我只是回答OP - 即使这样,他们将需要doc查找,而不是点击数据中的简单图片 –