将Class添加到具有任意2个类的所有表行,将另一个样式添加到具有任意3个类的所有表行

时间:2013-07-18 04:08:51

标签: javascript yui yui3

另一个YUI3问题。

我想为所有具有2个类的表行添加一个类(.two),并为所有具有3个类的表行添加另一个类(.three)。

我在这里找到了另一个问题的JQuery代码,我怀疑这会有效,但是需要将它转换为YUI3并且还允许添加两个类,以及以某种方式更改div: / p>

$(function(){
    var div = $('div[class*=" "]').filter(function(){
        var clsArray = $.trim(this.className.split(' ');
        return clsArray.size > 1;
    });
    div.css('background','yellow');
});

以上为例的jsfiddle:http://jsfiddle.net/udBZy/3/

谢谢!

编辑:

这是我到目前为止所做的,但没有运气:(

$(function() {

    YUI().use('node', function(Y) {

        var div = Y.all()('div[class*=" "]').filter(function(){

        var clsArray = Y.all().Lang.trim(this.className).split(' ');

        return clsArray.length > 1;

        });

        div.setStyle('background','yellow');

    });  

});

2 个答案:

答案 0 :(得分:0)

对于任何JQuery到YUI的转换,你有http://www.jsrosettastone.com/而不是,这并不困难。在页面中搜索您的JQuery方法,您将找到等价物。您需要Y.all()node.addClass()

答案 1 :(得分:0)

这是通过YUI论坛的解决方案。这可能有助于未来的人:

YUI().use('node', function (Y) {
    var re = / {1,}/g;
    var div = Y.all('div[class *= " "]').each(function (n) {
        var numClasses =  Y.Lang.trim(n.get("className")).split(re).length;

        n.addClass("numClasses" + numClasses);
        n.setContent(n.getContent() + " found " + numClasses);
    });
});