2015-07-13 2 views
0

У меня есть переменная по умолчанию, которая происходит откуда-то, что я не могу ее изменить.Предоставление переменной определенного другого имени на основе идентификатора класса

я могу получить значение этой переменной с помощью этого:

var.name = {{var1}} 

, например, эта переменная может иметь имя Валуа: «тест»

Я хотел бы изменить эту переменную, если есть конкретный класс в код страницы:

<p class="pclass"></p> 

и первая переменная, о которой я упоминал раньше, имеет другое название. Если этого класса нет, первое значение имеет начальное изменение.

Я thoug использовать что-то вроде этого

value = var.name 
if (value =="test" && document.getElementsByClassName("pclass")) 
{ 
var.name = pclass 
}else{ 
return var.name 
} 
+0

Вы пытаетесь найти свой документ, чтобы узнать, существует ли pclass? Вы можете сделать document.getElementsByClassName («pclass»), чтобы узнать, существует ли он – Ted

+0

Обычно я проверяю два условия, чтобы проверить, могу ли я изменить переменную, но, поскольку вы можете видеть, что мой код равен половине, потому что я новичок в этом. – Agata

+0

ах, я вижу, держись, написание. – Ted

ответ

1

Что вы хотите, чтобы проверить документ, если в любом элементе класс существует, и если это произойдет, изменить имя переменных. Здесь:

// Find all elements with that className 
var elementsFound = document.getElementsByClassName("pClass"); 

// Check if the length of elementsFound is bigger than 0, if it is, it means there is more than 0 elements with that class, so the class exists somewhere 
if (elementsFound.length > 0) { 
    var.name = "pClass"; 
} 

И все. Не требуется «else», потому что исходная переменная не была изменена, если это условие не подтверждается. Вы можете, конечно, добавить к этому дополнительные проверки (например, var.name == teste и т. Д.).

И вы также можете преобразовать его в 1 строку только:

if (document.getElementsByClassName("pClass").length > 0) 
    var.name = "pClass"; 

Edit

Если вы хотите два валидаций (не элементы управления), логика была правильной, но код WASN» т только в малой части:..

if (var.name == "test" && .....) 

вы должны поставить "вокруг имени, которое вы хотите сравнить, строку Кроме того, он должен работать

+0

Если я хочу использовать два элемента управления, я должен написать это «if (var.name == teste && document.getElementsByClassName (« pClass »). Length> 0)? – Agata

+0

Логика правильная, код крошечный. Посмотрите в моем первоначальном ответе, где я редактировал. – Ted

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