2013-08-26 4 views
2

Как установить стили CSS div с помощью javascript? У меня проблема с получением значения имени класса. Пожалуйста, помогите, если кто-нибудь это узнает.Как проверить значение div в javascript

<div class="this_is_i_want_to_set_the_background_color" id="divname"></div> 
<div class="test" id="divname"></div> 

var className = $('.divname').attr('class'); 
var t = 'divalue'; 
if(className == t){ 
    $('.divname').css('background', '#0962ae'); 
} 

ответ

5

Вы можете использовать .hasClass метод:

$('.divname').each(function() { 
    if ($(this).hasClass('divalue')) { 
     $(this).css('background', '#0962ae'); 
    } 
}); 

Но есть один простой способ сделать это:

// an element with class 'divname' also has class 'divalue' 
$('.divname.divalue').css('background', '#0962ae'); 
+0

Хорошо, что вы редактируемого свой ответ. Не получилось, почему люди выказывали вас, поскольку ваш первый ответ был явно сбит. – Kippie

+0

@ Kippie Первый ответ показал, что 'hasClass' - это правильный способ проверить, имеет ли элемент определенный класс, что хочет сделать op. В то время как второй лучше. – xdazz

+0

true, но перед тем, как вы отредактировали ответ, похоже, что ответ gregorkas немного ниже, без использования '' this'' или '' each'' – Kippie

0

В вашем примере, вы уже выбрали только ".divname? Это никогда не сработает, потому что это будет так:

if('divname'=='divvalue') 

Вместо этого вы можете написать, чего вы хотите достичь, и мы можем помочь.

2

его можно сократить, как

var t = 'divalue'; 
$('.divname.' + t).css('background', '#0962ae'); 
0

Вы можете попробовать функцию JQuery hasClass (док: http://api.jquery.com/hasClass/), , например:

if($('.divname').hasClass('divalue')){ 
    $('.divname').css('background', '#0962ae'); 
} 
+0

Этот ответ неверен, см. Http://jsfiddle.net/uSw4B/ о том, почему. – Kippie

+0

Действительно, но я думаю, что вопрос в том, как проверить класс, а не сам код. Если код действительно должен быть правильным, было бы необязательно проверять класс в любом случае, потому что вы могли бы просто использовать $ ('. Divname.divalue'). Css ('background', '# 0962ae'); – gregorkas