#javascript #extjs #component-query
#javascript #extjs #компонент-запрос
Вопрос:
У меня есть 6 контейнеров с cls: tipoDocumento contrato
:
{
xtype: 'container',
layout: 'vbox',
align: 'center',
hidden: true,
cls: 'tipoDocumento contrato',
listeners: {
click: {
element: 'el',
fn: function (e, t) {
alert("FIRMAR")
}
},
mouseover: {
element: 'el',
fn: function (e, t) {
this.addCls('rowGridAzul')
}
},
mouseout: {
element: 'el', //bind to the underlying el property on the panel
fn: function (e, t) {
this.removeCls('rowGridAzul')
}
}
},
items: [
{
xtype: 'image',
src: 'img/custom/XL_firmar.png',
width: 66,
height: 66,
cls: 'imagen_elegir_tipo_documento'
},
{
xtype: 'label',
layout: 'fit',
text: lang.getString('FIRMAR'),
width: 66,
cls: 'textoElegirTipoDocumento'
}
]
},
и только 5 cls: tipoDocumento
.
Когда я использую первый ComponentQuery возвращает 6 элементов с ‘contrato’ в их классе. Но когда я использую второй ComponentQuery возвращает 0 элементов вместо 5 элементов, у которых есть только ‘cls: tipoDocumento’.
Ext.ComponentQuery.query('#listadoTiposDeDocumento')[0].query("container[cls~=contrato]");
Ext.ComponentQuery.query('#listadoTiposDeDocumento')[0].query("container:not[cls~=contrato]");
cls этих элементов будут динамическими, так что это единственный способ, которым я вижу это, но я делаю что-то не так, и я этого не вижу.
Ответ №1:
Я полагаю, что вам не хватает круглых скобок. Это должно быть
Ext.ComponentQuery.query('#listadoTiposDeDocumento')[0].query("container:not([cls~=contrato])");
Смотрите документацию