如何使用jquery一次删除属性

时间:2010-11-15 09:36:45

标签: jquery

$( '#MYIMAGE')removeAttr( '类')removeAttr( '风格')removeAttr( '边界');。。。

那个工作得很好但有没有办法从元素中删除一组属性?

我稍微修改了代码,比如

$.fn.removeAttrs = function () {
    // Convert all passed arguments to an array
    var args = arguments[0].split(' '),
        attr;

    // Loop, removing the first array item on each iteration
    while (attr = args.shift())
        this.removeAttr(attr);

    // Return the jQuery object for chaining
    return this;
}

如下所示称之为

$('#myImage').removeAttrs('class style border');

4 个答案:

答案 0 :(得分:4)

不,但你可以轻松地写自己的:

$.fn.removeAttrs = function () {
    // Convert all passed arguments to an array
    var args = Array.prototype.slice.call(arguments),
        attr;

    // Loop, removing the first array item on each iteration
    while (attr = args.shift())
        this.removeAttr(attr);

    // Return the jQuery object for chaining
    return this;
}

$('#myImage').removeAttrs('class', 'style', 'border');

这是一个有几个不同的重载,jQuery样式:

$.fn.removeAttrs = function () {
    // Convert all passed arguments to an array
    var args = Array.prototype.slice.call(arguments),
        attr;

    // Handle passing arrays or space-separated strings
    if (args.length == 1)
        args = $.isArray(args[0]) ? args[0] : args[0].split(" ");

    // Loop, removing the first array item on each iteration
    while (attr = args.shift())
        this.removeAttr(attr);

    // Return the jQuery object for chaining
    return this;
}

// Now all of the following will work 
$('#myImage').removeAttrs(['class', 'style', 'border']);
$('#myImage').removeAttrs('class', 'style', 'border');
$('#myImage').removeAttrs('class style border');

答案 1 :(得分:1)

你已经在jquery中有一个函数

jQuery(element).removeAttr('attribute1 attribuite2 attribute3');

将一次删除所有属性。

http://api.jquery.com/removeAttr/这里removeAttr可以使用列表

演示:即使对于开发人员控制台中的这个stackoverflow页面也是如此

jQuery('div#footer')。removeAttr('id class')

这将从div

中删除属性id和class

答案 2 :(得分:0)

我写了这封,很开心!

// classNames is an array of attribute names you want to remove from the element.
// jQueryElement is the jQuery element to remove the attributes from.
function removeSetOfAttributesFromAnElement(attNames, jQueryElement) {
    $.each(attNames, function() {
        jQueryElement.removeAttr(this);
    }
}

// call it!
removeSetOfAttributesFromAnElement(['class','style','border'], $("#myImage"));

答案 3 :(得分:0)

不直接。 首先要问的是,你真的想做什么。请记住,您将丢失Id属性。

但是如果你必须要做的就是创建一个与源标签(DIV等)相同的新标签,然后使用$('#target')获取源html .html($('#source') html的());