问题描述
我目前正在做 CS50,我需要编写一个小的 html 页面,插入来自 Javascript 的交互元素。我是这门语言的初学者,我试图找出当我悬停在上面时如何显示图像一个文本。 显然互联网上关于这个的话题几乎为零,我只找到了这个,它确实有效,但只适用于第一张图片。原因是因为所有网址的“id”都是相同的,我明白了,但是怎么能我修改了代码,以便它可以用于所有不同的文本/图片?我有点了解整个图片,因为我知道 Python,但 html 和 Js 对我来说是全新的。任何帮助将不胜感激,谢谢
<div>
<table>
<tr>
<th>Best Albums</th>
<th>Year</th>
</tr>
<tr>
<td><img class="hidden" id='image' src="https://cdn.mos.cms.futurecdn.net/2Lm375yVwwGyAHfNFP2HU6-970-80.jpg.webp"/> <span>Spreading the disease</span></td>
<td>1985</td>
</tr>
<tr>
<td><img class="hidden" id='image' src="https://cdn.mos.cms.futurecdn.net/jP4Fx9dobk4R27kg5hpsrd-970-80.jpg.webp"/> <span>Among the living</span></td>
<td>1987</td>
</tr>
<tr>
<td><img class="hidden" id='image' src="https://cdn.mos.cms.futurecdn.net/sj49Yj3eJERgwwVbZBZ5nJ-970-80.jpg.webp"/> <span>Persistence of time</span></td>
<td>1990</td>
</tr>
<tr>
<td><img class="hidden" id='image' src="https://cdn.mos.cms.futurecdn.net/BhDq2Bdm7axUP9erRcs5i9-970-80.jpg.webp"/> <span>Sound of white noise</span></td>
<td>1993</td>
</tr>
<tr>
<td><img class="hidden" id='image' src="https://cdn.mos.cms.futurecdn.net/fKVNiGMLbFtsXt6uC8aLMm-970-80.jpg.webp"/> <span>We've come for you all</span></td>
<td>2003</td>
</tr>
</table>
<script>
$(document).ready(function () {
$('span').hover(function(){
$(this).addClass('underline');
$('#image').show();
},function(){
$(this).removeClass('underline');
$('#image').hide();
});
});</script>
</div>
<br><a href="scott.html"><button type="button">Check them out</button></a><br>
</body>
解决方法
id 必须是唯一的。所以你需要找到一种不同的方式来选择元素。既然是兄弟,可以使用prev()来选择。
$(document).ready(function() {
$('span').hover(function() {
$(this).addClass('underline').prev("img").show();
},function() {
$(this).removeClass('underline').prev("img").hide();
});
});
.hidden {
display: none;
height: 100px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<table>
<tr>
<th>Best Albums</th>
<th>Year</th>
</tr>
<tr>
<td><img class="hidden" id='image' src="https://cdn.mos.cms.futurecdn.net/2Lm375yVwwGyAHfNFP2HU6-970-80.jpg.webp" /> <span>Spreading the disease</span></td>
<td>1985</td>
</tr>
<tr>
<td><img class="hidden" id='image' src="https://cdn.mos.cms.futurecdn.net/jP4Fx9doBk4R27kg5hpsrd-970-80.jpg.webp" /> <span>Among the living</span></td>
<td>1987</td>
</tr>
<tr>
<td><img class="hidden" id='image' src="https://cdn.mos.cms.futurecdn.net/sj49Yj3eJERgwwVbZBZ5nJ-970-80.jpg.webp" /> <span>Persistence of time</span></td>
<td>1990</td>
</tr>
<tr>
<td><img class="hidden" id='image' src="https://cdn.mos.cms.futurecdn.net/BhDq2Bdm7axUP9erRcs5i9-970-80.jpg.webp" /> <span>Sound of white noise</span></td>
<td>1993</td>
</tr>
<tr>
<td><img class="hidden" id='image' src="https://cdn.mos.cms.futurecdn.net/fKVNiGMLbFtsXt6uC8aLMm-970-80.jpg.webp" /> <span>We've come for you all</span></td>
<td>2003</td>
</tr>
</table>
</div>
<br><a href="scott.html"><button type="button">Check them out</button></a><br>
</body>