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!
答案 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);
});