jQuery条件:如果div有一个特定的ID,则将class添加到另一个div

时间:2015-06-02 02:40:17

标签: jquery css conditional-statements

我正在尝试使用jQuery条件将类应用于此特定元素 - 当另一个元素包含特定ID时。这是我到目前为止所做的:

<script type="text/javascript">
$(document).ready(function() {
if( $('.container-fluid').hasId('europe') === true ) 
{
 $('controlBar_playerVideo1').addClass('darkcontrols');
}
});
</script>

以下是实际网站:http://fsa.space/

当我将上面的脚本添加到页脚时,控制台中出现“未定义不是函数”错误。我应该提到我是一个完全jQuery的新手(应该非常明显)。

如果有人能提供指导来实现这一点,我将不胜感激。

5 个答案:

答案 0 :(得分:7)

试试这个

<script type="text/javascript">
$(document).ready(function() {
if ($('.container-fluid').attr("id") == "europe") {
         $('controlBar_playerVideo1').addClass('darkcontrols');
  }
 });
    </script>

答案 1 :(得分:1)

生成错误是因为hasId()不是jquery函数。要获取元素的ID,您可以使用is()attr('id')

if($('.container-fluid').is('#europe')) 
{
    $('controlBar_playerVideo1').addClass('darkcontrols');
} 

if($('.container-fluid').attr('id') == 'europe') 
{
    $('controlBar_playerVideo1').addClass('darkcontrols');
} 

答案 2 :(得分:0)

您可以尝试使用$('#europe.container-fluid').size() > 0,这意味着“是否包含ID为europe和CSS类container-fluid的元素?”。

答案 3 :(得分:0)

您可以简单地将toggleClass()与布尔开关一起使用(如果它的计算结果为true,则会添加提供的类名,否则会将其删除,或者根本不添加):

$('controlBar_playerVideo1'). toggleClass('darkcontrols',  $('#europe.container-fluid').length);

参考文献:

答案 4 :(得分:0)

以为我会分享我是如何工作的。我使用了阿里的解决方案,但出于某种原因,脚本不会将一个类应用于我的元素(也许是因为它已经有了一个类?)。一旦我将目标元素从#controlBar_playerVideo1切换到html,该类的“黑暗控制”就会出现。适用于

所以这是最终的脚本对我有用:

<script type="text/javascript"> jQuery(document).ready(function() { if (jQuery('.container-fluid').attr("id") == "europe") { jQuery('html').addClass('darkcontrols'); } }); </script>

感谢Ali&amp;合作贡献!