это несколько неправильно.
var get_all_labels = el.getElements('label');
- возвращает коллекцию
var get_label_id = get_all_labels.getProperty('id');
- возвращает массив идентификаторов.
так что, если у вас есть один ярлык, он пойдет:
[labelObject#someid-elem]
, который затем вернет ["someid-elem"]
проблема в том, что element.addClass
требуется одна строка, а не массив строк, но вы можете использовать array.join, чтобы обойти это.
если у вас есть более 1 метки и вам нужно добавить их все как классы в цикл, который вы делаете, вы можете сделать
$$('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);
});