2012-01-05 4 views
0

Можно ли вместо вызова имени HTML поместить вызов функции javascript, чтобы класс мог быть установлен на основе результатов функции? Например, что-то вроде:Использование javascript для установки имени класса HTML

<a class="fSetClass(vName)" .... 

, который бы назвал функцию с именем fSetClass() и получить обратно действительное имя класса CSS, основанный на параметре VNAME передается вместе с ним.

Благодаря

+0

и это имя класса будет установлен один раз в инициализации страницы? Затем PHP/C#/... –

+1

Нет, но вы можете использовать JavaScript для изменения имени класса для элемента (хотя вы не можете сделать что-то вроде 'class =" fSetClass() "' и ожидать, что он будет работать. больше, чем PHP-область, а не JavaScript. –

+0

Вы имеете в виду функции addClass() или removeClass() jquery? – denolk

ответ

-1

Если вы используете JQuery, вы можете использовать функцию addClass

$(element).addClass('add-this-class'); 

Если вы хотите установить класс вместо использования атр:

$(element).attr('class','add-this-class'); 
+2

А что, если он не использует jQuery? –

+0

Добавление класса! = установка класса – hugomg

+0

Просто добавлен сеттер –

1

Нет, это не можно делать то, что вы просите в HTML. Хотя, вы можете использовать JavaScript для добавления к нему класса потом.

0

Нет, но то, что вы можете сделать, это использовать JQuery, чтобы получить элемент, а затем добавить или удалить имена классов из него:

HTML

<div class="my-class">My Content</div> 

JQuery

// will produce <div class="my-class added-class">My Content</div> 

var addClass = 1; 

if(addClass == 1) { 
    $(".my-class").addClass("added-class"); 
} 
else 
{ 
    $(".my-class").removeClass("removed-class"); 
} 
0

Только on* атрибуты обработчика событий оцениваются как код JavaScript, другие атрибуты - нет.

Как уже говорилось, вы должны присвоить класс обычно JavaScript. Если у вас есть ссылка на элемент (element), вы должны присвоить класс к className[MDN] собственности:

element.className = fSetClass(vname); 
0

Если вы используете JQuery, вы можете установить класс с помощью .attr():

$(document).ready(function() { 
    function fSetClass(vName){ 
    $("#element_id").attr('class', vName); 
    } 

    fSetClass('className'); 

}); 
1

Smth, как это, если в короткий путь
document.onload = function(){
document.getElementById('your-element-id').className = fSetClass(vname);
}

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