Jquery 根据src文件扩展名类型更改元素类型
目标:如果自定义元素类型(例如Jquery 根据src文件扩展名类型更改元素类型,jquery,html,wordpress,Jquery,Html,Wordpress,目标:如果自定义元素类型(例如)具有多个src文件扩展名(例如m4v,jpg…)中的一个,请更改自定义元素类型以反映适当的元素以适当显示src 我想可能是我的媒体元素的jquery选择器出了问题 jQuery(function($){ $(document).ready(function($) { $.fn.changeElementType = function(newType) { var attrs = {}; $.each(this[0]
)具有多个src
文件扩展名(例如m4v
,jpg
…)中的一个,请更改自定义元素类型以反映适当的元素以适当显示src
我想可能是我的媒体
元素的jquery选择器出了问题
jQuery(function($){
$(document).ready(function($) {
$.fn.changeElementType = function(newType) {
var attrs = {};
$.each(this[0].attributes, function(idx, attr) {
attrs[attr.nodeName] = attr.nodeValue;
});
this.replaceWith(function() {
return $("<" + newType + "/>", attrs).append($(this).contents());
});
}
})(jQuery);
$("media").has('[src$=".jpg"]').changeElementType("img");
$("media").has('[src$=".m4v"]').changeElementType("video");
});
•这是在Wordpress noConflict模式下运行的,请尝试以下操作:
编辑
我对元素和图像标签的输出做了一些小的调整。它正在输出
不如
$(“媒体”).has(“[src$=”.jpg“]).changeElementType(“img”)代码>
改为
$('media[src$=”.png“]).changelementtype('img')代码>
当然,您可以随意更改.png
,我只是使用了一个png进行测试
该插件还有一个小的调整,只是检查该元素是否存在,如果不存在,则什么也不做。如果该检查不存在,它会对您大喊大叫,因为它会尝试获取未定义元素的属性。哪一行与此错误相关?
Uncaught TypeError: object is not a function
(anonymous function)
l jquery.min.js:2
c.add jquery.min.js:2
v.fn.v.ready jquery.min.js:2
v.fn.v.init jquery.min.js:2
v jquery.min.js:2
(anonymous function)
(anonymous function) jquery.min.js:2
v.extend.globalEval jquery.min.js:2
(anonymous function) jquery.min.js:2
v.extend.each jquery.min.js:2
v.fn.extend.domManip jquery.min.js:2
v.fn.extend.append jquery.min.js:2
(anonymous function) jquery.min.js:2
v.extend.access jquery.min.js:2
v.fn.extend.html jquery.min.js:2
(anonymous function) jquery.min.js:2
l jquery.min.js:2
c.fireWith jquery.min.js:2
T jquery.min.js:2
r
jQuery(function ($) {
$.fn.changeElementType = function (newType) {
if (!this.length) return; // added
var attrs = {};
$.each(this[0].attributes, function (idx, attr) {
attrs[attr.name] = attr.value;
});
this.replaceWith(function () {
var element = $('<' + newType + '/>', attrs);
if (newType !== 'img')
element.append($(this).contents());
return element;
});
};
$('media[src$=".png"]').changeElementType('img'); // changed slightly
$('media[src$=".m4v"]').changeElementType('video'); // changed slightly
});