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

问题描述 投票:2回答:5

我试图获得一个jQuery条件将一个类应用于这个特定的元素 - 当另一个元素包含一个特定的ID时。这是我到目前为止所拥有的:

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

这是现场:http://fsa.space/

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

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

jquery css conditional-statements
5个回答
7
投票

试试这个

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

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');
} 

0
投票

你可以尝试$('#europe.container-fluid').size() > 0,这意味着“有没有id europe和CSS class container-fluid?”的元素。


0
投票

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

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

参考文献:


0
投票

以为我会分享我是如何工作的。我使用了Ali的解决方案,但由于某种原因,脚本不会将一个类应用于我的元素(也许是因为它已经有了一个类?)。只要我将目标元素从#controlBar_playerVideo1切换到html,就会将类'darkcontrols'应用于

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

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

感谢Ali&co的贡献!

© www.soinside.com 2019 - 2024. All rights reserved.