1、按照下列要求,对图5-1界面进行修改,补充代码:
图5-1对应代码如下:
<body>
<p id="question">你的男神是谁???</p>
<ul>
<li id="l1">是苏苏没错了</li>
<li id="l2">是靖王没错了</li>
<li id="l3">是阁主没错了</li>
<li id="l4">是侯爷没错了</li>
</ul>
</body>
(1)添加一条数据,内容为“是飞流没错了”;并将“是侯爷没错了”替换成“没有蒙大统领不能算男神团”,最终实现图5-2效果,请补全代码:
补全下列代码:
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<script type="text/javascript">
//添加文档就绪代码
1
//创建属性节点l5
2
//把新创建的节点加入到ul中
3
//创建替换节点
4
//替换节点l4
5
});
</script>
(2)对图5-2添加动画效果,当鼠标移动到“是苏苏没错了”上面的时候,该行内容变成红色底色,40px放大字体,并且下面三条的数据信息使用卷帘动画效果隐藏,当鼠标移开后,所有内容复原,补全代码。
```
//当鼠标移动到第一个li上是触发改变效果
6
//当鼠标移动到第一个li上时添加样式
7
//隐藏下面三条数据信息
⑧
}).mouseout(function(){
//当鼠标从第一个li上移开时修改样式
⑨
//显示下面三条数据信息
⑩
}); ```
问题1可以使用以下代码:
$(document).ready(function() {
// 添加一项为“是飞流没错了”的新数据
$('ul').append('<li>是飞流没错了</li>');
// 将“侯爷”修改为“没有蒙大统领不能算男神团”
$('#l4').text('没有蒙大统领不能算男神团');
});
解释:
$(document).ready()
函数会在页面文档加载完成后执行,确保DOM元素已经可以被操作。
$('ul').append('<li>是飞流没错了</li>');
选择所有的<ul>
元素,然后通过.append()
方法在其末尾添加一个新的列表项,内容为“是飞流没错了”。
$('#l4').text('没有蒙大统领不能算男神团');
选中id
为“l4”的列表项,并将其文本内容替换为“没有蒙大统领不能算男神团”。该操作使用jQuery的.text()
方法实现。
问题2可以使用以下代码来实现:
$(document).ready(function() {
// 添加一项为“是苏苏没错了”的新数据
$('ul').append('<li id="l5">是苏苏没错了</li>');
// 鼠标移入事件,添加动画效果
$('#l5').mouseover(function(){
// 当前项变成红底40px字体
$(this).css({'background-color': 'red', 'font-size': '40px'});
// 下面三条信息隐藏
$('#l6, #l7, #l8').slideUp();
});
// 鼠标移出事件,清除动画效果
$('#l5').mouseleave(function(){
// 将样式恢复成默认
$(this).removeAttr('style');
// 下面三条信息显示
$('#l6, #l7, #l8').slideDown();
});
});
解释:
$('#l5').mouseover(function(){...});
绑定元素“是苏苏没错了”的鼠标移入事件,此时的$(this)
即为当前元素。在该回调函数中,使用.css()
方法将当前元素的背景色设为红色、字体放大40像素,并且下面三行的元素使用.slideUp()
隐藏。
$('#l5').mouseleave(function(){...});
绑定元素“是苏苏没错了”的鼠标移出事件,在该回调函数中利用.removeAttr()
方法去除该元素上设置的所有属性(即将样式恢复成默认),同时使用.slideDown()
方法让下面三行的元素显示出来。
注意,为了实现动画效果需要引入 jQuery UI 库。
答案:
根据题目要求,需要使用jQuery来创建、替换和删除节点,并添加动画效果。具体的代码如下:
// 创建新节点并添加到ul中 var $newLi = $('
// 替换节点内容 $('li:contains("是侯爷没错了")').text('没有蒙大统领不能算男神团');
// 删除节点 $('li:contains("是林黛玉没错了")').remove();
// 鼠标移入效果 $('li:contains("是苏苏没错了")').hover(function() { $(this).css({ backgroundColor: 'red', fontSize: '20px' }); $('li:contains("是林黛玉没错了"), li:contains("是刘墉没错了"), li:contains("是聂小倩没错了")').slideUp(); }, function() { $(this).css({ backgroundColor: '', fontSize: '' }); $('li:contains("是林黛玉没错了"), li:contains("是刘墉没错了"), li:contains("是聂小倩没错了")').slideDown(); });
// 动画效果时间 $.fx.speeds._default = 1000;
上述代码实现了题目所要求的功能,具体来说,包括以下几个部分:
创建新节点并添加到ul中,使用jQuery的$()函数可以轻松创建新节点,然后使用append()方法将节点添加到ul中。
替换节点内容,使用jQuery的text()方法可以轻松实现。
删除节点,使用jQuery的remove()方法即可。
鼠标移入效果,使用jQuery的hover()方法来实现,当鼠标移入时,将该行文字设置为红色底色并放大字体,并且使用slideUp()方法将下面三条数据隐藏;而当鼠标移出时,恢复原样,并使用slideDown()方法将下面三条数据显示出来。
动画效果时间,使用$.fx.speeds可设置动画时间,这里设置为默认值1000。
综上所述,以上代码即为补全代码后的解决方案。