我正在尝试使用jQuery条件将类应用于此特定元素 - 当另一个元素包含特定ID时。这是我到目前为止所做的:
<script type="text/javascript">
$(document).ready(function() {
if( $('.container-fluid').hasId('europe') === true )
{
$('controlBar_playerVideo1').addClass('darkcontrols');
}
});
</script>
以下是实际网站:http://fsa.space/
当我将上面的脚本添加到页脚时,控制台中出现“未定义不是函数”错误。我应该提到我是一个完全jQuery的新手(应该非常明显)。
如果有人能提供指导来实现这一点,我将不胜感激。
答案 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;合作贡献!