2013-02-13 2 views
0

Я пытаюсь активировать ссылку через JavaScript, который выглядит следующим образом:Целевая ссылка атрибута

<a class="second_link nobold" data-type="via_mail" href="http://swap.mtr.com/index.php?id=10&ctid=546432#">Send via mail</a> 

Я думал об ориентации на ссылку с помощью class, но есть многочисленные ссылки с этим классом.
Как активировать ссылку через data-type="via_mail"?

+0

Можете ли вы использовать jQuery? Ванильный код js - путь к длинному ... – gdoron

+0

Извините @gdoron, нет, я не могу – pufAmuf

+0

Затем используйте код vanilla js в моем ответе. – gdoron

ответ

1

Если вы нацелены только современный браузер, вы можете использовать document.querySelector

document.querySelector('a.second_link[data-type="via_mail"]').click(); 

Если вы можете использовать jQuery:

$('.second_link[data-type="via_mail"]').click(); 

Если не вышеперечисленное помогает, вам нужно написать еще немного ...

var ele = document.getElementsByTagName('a'); 
for (var i = 0; i < ele.length; i++) 
    if (ele[i].getAttribute('data-type') == 'via_mail') 
     ele[i].click(); 

Live DEMO

+0

Спасибо, это было здорово! Мне пришлось использовать вторую версию, поскольку первая работала только в FF, и мне нужно использовать IE. – pufAmuf

+0

Я имел в виду третью версию, а не вторую;) – pufAmuf

0

это Javascript должен работать в любом браузере:

var anchors = document.getElementsByTagName("a"); 
for (i=0; i < anchors.length; i++) { 
    if (anchors[i].getAttribute("data-type") == "via_mail") { 
     // GOTCHA! 
    } 
} 

если вы можете использовать JQuery селектор атрибута:

$('a[data-type="via_mail"]'); 
+0

Ты * просто * побей меня :) –

+0

Привет, Царь, спасибо, но я не могу использовать jquery :). Это для макроса, и я активирую javascript, введя его в адресную строку страницы, не содержащей jquery. – pufAmuf

+0

gonna have to loop then (см. Править) – Tsar

1

В зависимости от того, что браузеры вы собираетесь поддерживать вас может сделать querySelectorAll с большинством современных браузеров :

document.querySelectorAll("a[data-type='via_mail']"); 
1

Как показали другие, если использование/может использовать JQuery, вы можете просто иметь:

var link = $("a[data-type='via_mail']")[0]; 

Однако, если браузер вы собираетесь поддерживать орудия querySelector/querySelectorAll, вы можете просто:

var link = document.querySelector("a[data-type='via_mail']"); 

Без дополнительной библиотеки.

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