2016-11-23 2 views
8

Как получить элементы DOM по классам, идентификаторам, селекторам (div > .my-i) и свойствам, как в jQuery?Как получить элементы DOM по классам, идентификаторам, селекторам и свойствам

Например:

<div class="myClass" style="width:200px"> 
<span id="pop">test</span> 
<div> 
    <i>aaa</i> 
    <i class="my-i">bbb</i> 
    <i class="my-i">ccc</i> 
</div> 

мне нужно получить:

  1. значение 200px по классу
  2. текст 'тест' по идентификатору
  3. всего класса = "мой-я"

Каков наилучший способ?

+0

Получить их, где, с какой целью? Что вы пробовали, и в чем именно проблема? – jonrsharpe

+0

@jonrsharpe, не имеет значения, нужно получить эти данные и передать в DB: 200px, 'test' и проанализировать эти html-объекты по классу = "my-i" – aaaaaaaaax10

+0

Зачем вам их нужно получить? Это похоже на неправильный способ использования Angular. Не могли бы вы дать некоторый контекст, чтобы избежать проблемы XY? http://xyproblem.info – jonrsharpe

ответ

20
constructor(private elRef:ElementRef) {} 

ngAfterViewInit() { 
    this.elRef.nativeElement.querySelector('.myClass'); 
} 

Это не сработает с веб-рабочими или универсальным, но сам Angular2 не обеспечивает что-то не зависящее от платформы для запроса элементов.

Смотрите также angular 2/typescript : get hold of an element in the template

+4

'@ViewChild()' не поддерживает селекторов CSS, только имена переменных шаблона или директивы/типы компонентов. –

+0

Кто-нибудь знает, как получить элемент DOM через CSS-селектор, как запросил OP? Как упоминалось выше, '@ ViewChild' и' element.nativeElement' не будут работать для этого сценария. – atconway

+0

@atconway В чем проблема. В моем коде показано, как использовать селектор CSS. Что вы подразумеваете под «этим сценарием»? Сам угол не дает ничего. Если вы хотите использовать селектор CSS, вы должны использовать «nativeElement» или «window». –

Смежные вопросы