我试图获得一个jQuery条件将一个类应用于这个特定的元素 - 当另一个元素包含一个特定的ID时。这是我到目前为止所拥有的:
<script type="text/javascript">
$(document).ready(function() {
if( $('.container-fluid').hasId('europe') === true )
{
$('controlBar_playerVideo1').addClass('darkcontrols');
}
});
</script>
这是现场:http://fsa.space/
当我将上面的脚本添加到页脚时,控制台中出现“未定义不是函数”错误。我应该提到我是一个完全jQuery新手(应该非常明显)。
如果有人能提供实现这一点的指示,我将不胜感激。
试试这个
<script type="text/javascript">
$(document).ready(function() {
if ($('.container-fluid').attr("id") == "europe") {
$('controlBar_playerVideo1').addClass('darkcontrols');
}
});
</script>
生成错误是因为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');
}
你可以尝试$('#europe.container-fluid').size() > 0
,这意味着“有没有id europe
和CSS class container-fluid
?”的元素。
您可以简单地将toggleClass()
与布尔开关一起使用(如果它的计算结果为true,则会添加提供的类名,否则将其删除,或者根本不添加):
$('controlBar_playerVideo1'). toggleClass('darkcontrols', $('#europe.container-fluid').length);
参考文献:
以为我会分享我是如何工作的。我使用了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的贡献!