Пользовательский интерфейс Alloy (доступ к значению тега)

Я работаю с порталом liferay 6.2. И я хочу получить значение текста в теге с пользовательским интерфейсом сплава. пример:

<div> 
    <p> Paragraph </p>
    "value"
</div>

желаемый результат: значение

пожалуйста помоги.


person user3845254    schedule 08.08.2014    source источник


Ответы (1)


AlloyUI, будучи расширением YUI3, использует методы get/set для доступа и управления свойствами/атрибутами объекта (Узел YUI3 / Узел AlloyUI ), который возвращается при поиске элементов на странице.

Некоторые примеры можно просмотреть в этой документации, а также в данная документация.

Как правило, вам понадобится что-то уникальное (например, id, класс css) для div, чтобы получить только этот элемент. Когда у вас есть этот элемент, divNode.get('text') предоставит вам весь текст внутри элемента. Не существует способа легко «пропустить» содержимое абзаца внутри div без того, чтобы value не содержалось в какой-либо другой разметке. Если у вас есть контроль над разметкой и вы можете это сделать, это будет лучшим вариантом. В противном случае вам остается использовать функцию replace, чтобы удалить содержимое абзаца из текста.

<script>
  AUI().use('aui-base', function(A) {

   var paragraphText = A.one('#myDiv>p').get('text');
   var divText = A.one('#myDiv').get('text')

   var onlyValue = divText.replace(paragraphText, "").trim()
   console.log(onlyValue)

  })
</script>
person Origineil    schedule 08.08.2014
comment
Спасибо. это мне очень помогло. но метода get('text') было достаточно, чтобы пропустить абзац. т.е.: A.one('#myDiv').get('text') возвращает значение. - person user3845254; 12.08.2014