2016-07-12 4 views
4

мне нужно, чтобы получить элемент по ClassName, который начинается с:Как я могу получить элемент по ClassName с началами с определенной строкой?

width-48 height-48 profile_view_img

Полный тег:

<div class="width-48 height-48 profile_view_img_9131256"></div> 

числа всегда изменяет этот класс.

Это то, что я пытался до сих пор:

var x = window.document.querySelectorAll("*[class^=\"width-48 height-48 profile_view_img\"]")[0] 
+0

И это не сработало? Что ты получил? Можем ли мы увидеть и ваш HTML-код? – Scimonster

+1

Почему вы хотите использовать такой хрупкий селектор? – undefined

+0

Вы хотите выбрать один элемент, который начинается со всех трех классов? –

ответ

3

Попробуйте следующее:

var x = window.document.querySelectorAll("*[class^=\"width-48 height-48 profile_view_img\"]")[0] 
var className = x.className; 

JSFiddle.

1

Вы можете использовать либо querySelector так:

var element = document.querySelector(".width-48.height-48.profile_view_img"); 

Или просто использовать getELementsWithClass, который принимает пространства, как это:

var elements = document.getElementsByClassName("width-48 height-48 profile_view_img"); 
+1

OP означает, что классы должны начинаться с этих строк, а не из тех строк. –

0

Ты почти там.

Try:

var x = document.querySelectorAll('.width-48.height-48.profile_view_img')[0]; 

Это гласит:

Пусть Переменная X быть первый элемент в документ, который содержит классы .width-48 И .height-48 И .profile_view_img.

+1

OP означало, что классы должны начинаться с этих строк, а не из тех строк. –

+0

Что произойдет, если он не найдет таких элементов? – Dropout

+0

Вы совершенно правы, @JacquesMarais - я пропустил это. – Rounin

-1

Для первого элемента, который имеет классы с именами, начиная с

width-48 и height-48 и profile_view_img

вы можете попробовать:

var x = window.document.querySelectorAll("*[class^='width-48'] *[class^='height-48'] *[class^='profile_view_img']")[0] 
+0

Это селектор потомков. – gcampbell

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