我正在尝试根据weatherType获取CSS背景。
if($('#weatherType:contains("cloudy")')) {
$('body').css('background-image', 'url(https://hd.unsplash.com/photo-1430263326118-b75aa0da770b)');
} else if($('#weatherType:contains("clear sky")')) {
$('body').css('background-image', 'url(https://media.giphy.com/media/3o7rc6sa2RvKo8K5EI/giphy.gif)')
};
HTML
<body>
<div class="text-center">
<h1> Show the Local Weather</h1>
<h3>Front End Developer Project</h3>
<ul class="list-unstyled">
<i class="fa fa-home" aria-hidden="true"></i>
<li class="btn btn-default" id="city"></li>
<i class="wi wi-day-cloudy"></i>
<li class="btn btn-default" id="weatherType"></li>
</br>
<i class="wi wi-thermometer"></i>
<li class="btn btn-default" id="fTemp"></li>
<i class="wi wi-strong-wind"></i>
<li class="btn btn-default" id="windSpeed"></li>
</ul>
答案 0 :(得分:4)
在你的代码中,第一个if条件总是为真,因为$(...)
返回一个jQuery对象,这是一个真正的值,所以总是第一个if块被执行。请改用length
property。
if($('#weatherType:contains("cloudy")').length) {
//--------------------------------------^^^^^^-------
$('body').css('background-image', 'url(https://hd.unsplash.com/photo-1430263326118-b75aa0da770b)');
} else if($('#weatherType:contains("clear sky")').length) {
//------------------------------------------------^^^^^^-------
$('body').css('background-image', 'url(https://media.giphy.com/media/3o7rc6sa2RvKo8K5EI/giphy.gif)')
或者您可以使用返回布尔值的jQuery is()
方法。
if($('#weatherType').is(':contains("cloudy")')) {
//------------------^^^^-------
$('body').css('background-image', 'url(https://hd.unsplash.com/photo-1430263326118-b75aa0da770b)');
} else if($('#weatherType').is(':contains("clear sky")')) {
//-------------------------^^^^-------
$('body').css('background-image', 'url(https://media.giphy.com/media/3o7rc6sa2RvKo8K5EI/giphy.gif)')
答案 1 :(得分:0)