Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 根据src文件扩展名类型更改元素类型_Jquery_Html_Wordpress - Fatal编程技术网

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
});