使用mootools替换多个元素名称

时间:2011-10-11 01:34:40

标签: javascript mootools

moo中是否有任何可以替换多个元素id名称的等价物

我有这个

    $$('myelement').each(function(el){ 
            var get_all_labels = el.getElements('label');/
            var get_label_id = get_all_labels.getProperty('id');
            el.addClass(get_label_id);

        });

但mu标签(labael_name)会返回其他后缀,例如 -elem ,, ,我需要删除 -elem ,, 来自新创建的父类名称。我测试替换但可能在错误的位置,它返回替换不是一个函数,也测试自定义string_replace为js但我没有任何运气,请任何提示。日Thnx!

1 个答案:

答案 0 :(得分:2)

这有些不对。

var get_all_labels = el.getElements('label'); - 返回一个集合

var get_label_id = get_all_labels.getProperty('id'); - 返回一组id。

所以,如果您有一个标签,它将会:

[labelObject#someid-elem]然后返回["someid-elem"]

问题是,element.addClass需要一个字符串,而不是一个字符串数组,但你可以使用array.join解决这个问题。

如果你有多个标签并且需要将它们全部作为类添加到你正在循环的el中,你可以这样做

$$('myelement').each(function(el) {
    var get_all_labels = el.getElements('label');

    // get all ids and replace them... use .get for 1.2+ or .getProperty for 1.11
    var get_label_ids = get_all_labels.map(function(label) {
        return label.getProperty("id").replace("-elem", "");
    });

    // add to parent element.
    el.addClass(get_label_ids.join(" "));
    console.log(el);
});

如果这不是预期的行为并且您实际上只有一个标签,那么只需执行

$$('myelement').each(function(el) {
    var id = el.getElement('label').get("id").replace("-elem", "")
    el.addClass(id);
    console.log(el);
});