目标:如果自定义元素类型(例如<media ...>
)具有多个src
文件扩展名之一(例如m4v
,jpg
...),请更改自定义元素类型以反映正确显示的元素src
。
我想也许我的media
元素的 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");
});
到目前为止,运行此程序时,Chrome 控制台会报告 jQuery 错误……但据我所知,一切都已正确声明。语法或对某事的误解?
编辑:这是错误报告
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
• 这是在 Wordpress noConflict 模式下运行的