2016-07-12 1 views
0

У меня есть div, имеющий много тегов внутри. Я хочу связать событие click на всех текстовых элементах с атрибутом x.Как получить элемент с именем тега, имеющим определенный атрибут в jquery или angularjs

Я попытался

$('#attendacneLineChart').find('text') 

, но это возвращает все текстовые элементы. Но мне нужен только те текстовые элементы, которые имеют атрибут x.

+1

Это не дубликат. Я имею в виду, что OP может выбирать атрибут с помощью jQuery, но они никогда не должны делать это в угловом. Вместо этого это должно быть сделано с помощью директивы. – dfsq

+1

Нет такой вещи, как «текстовый элемент», можете ли вы привести пример HTML, который вы пытаетесь описать? И какой атрибут вы ищете? Что вы хотите сделать на мероприятии «click»? –

+0

Он помечен jQuery. Дублировать это тогда? http://stackoverflow.com/questions/11913841/accessing-attributes-from-an-angularjs-directive - я закрыл его, а затем увидел «текст с атрибутом», который в любом случае не имеет смысла. OP должен показать примеры html с или без атрибута, который он имел в виду. – mplungjan

ответ

2

использование

$('#attendacneLineChart').find('text[X]') 

если вы хотите, чтобы игнорировать некоторые элементы с конкретным атр вы можете использовать :not

$('#attendacneLineChart').find('text[X]:not([y])') // for more use 'text[X]:not([y]):not([z])' 
+1

Нет, это совершенно неправильно. Помните, мы говорим об Agnular, а не jQuery. – dfsq

+0

спасибо! это работает. Если я хочу игнорировать некоторые элементы с определенным атрибутом? –

+0

@SunilGarg обновленный ответ –

2

Я хочу, чтобы связать события нажатия на все текстовые элементы, которые имеют атрибут х ,

Создать директиву для этого:

.directive('x', function() { 
    return { 
    link: function(scope, element) { 
     element.click(function() { 
     console.log('clicked') 
     }) 
    } 
    } 
}) 
0

Вы можете использовать JQuery [attribute='value'] селектор для нахождения элемента имеет определенный атрибут.

$("div > p[myAttr]").click(function(){ 
 
    console.log($(this).text()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
    <p>Text1</p> 
 
    <p myAttr="1">Text2</p> 
 
    <p>Text3</p> 
 
    <p myAttr>Text4</p> 
 
</div>

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