只是.attr()的一部分
Just a part of .attr()
我有一个img html块<img src="folder1/folder2/folder3/logo1.png">
位于像这样的大div中
<div id="editorial">
<div id="img_editorial"><img src="folder1/folder2/folder3/logo1.png" /></div>
</div>
当用户将<div id="editorial">
悬停(鼠标悬停)时,我想读取<img>
的属性,即folder1/folder2/folder3/logo1.png
,从中提取logo1.png
,并将on_
添加到徽标(on_logo1.png
)中,然后用jquery .html() function
输出以覆盖<div id="img_editorial">
在鼠标退出,我想返回到logo1.png
…因为我在父div中有多个背景更改。所以基本的功能是灰色的标志,当鼠标在一个大的div(也div的背景变化…等)…
. .我怎么能读取<img>
属性,然后提取logo1.png,而不是整个folder1/folder2/folder3/logo1.png
…
你可以这样读这个属性:
var img_src = $('#img_editorial img').attr('src');
这将给你:
folder1/folder2/folder3/logo1.png
你可以用:
var split_img_src = img_src.split('/');
这会给你一个数组,类似于:
split_img_src[0] = folder1;
split_img_src[1] = folder2;
split_img_src[2] = folder3;
split_img_src[3] = logo1.png;
所以数组中的最后一个值应该始终是文件的名称-无论目录树有多长。
现在你有了文件名,你可以添加任何你想要的,做任何你需要的。
好运。
给!这是一个很好的解决方案:
$('#img_editorial img').hover(function(){
imgSrc = $(this).attr('src');
var imgSplit = imgSrc.split('/');
var imgName = imgSplit[3];
$(this).attr('src', imgSrc.replace(imgName, 'on_'+imgName) );
},function(){
$(this).attr('src', imgSrc);
});
如果你愿意,打开Firebug并运行这个DEMO
下面的应该做您想要的。它只是使用jQuery .data()
API存储原始图像,并将其放在<div>
的.mouseleave()
上。
$('div#editorial').mouseenter(function() {
var originalSrc = $('img', this).prop('src');
$(this).data('originalSrc', originalSrc);
var pathComponents = originalSrc.split('/');
var logo = pathComponents.pop();
pathComponents.push('on_' + logo);
$('img', this).prop('src', pathComponents.join('/'));
}).mouseleave(function() {
$('img', this).prop('src', $(this).data('originalSrc'));
});
演示排序工作,但我没有_on
图像,所以它只是404。我希望你能明白:-)
相关文章:
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 如何检查字符串的一部分与数组匹配
- 为什么可以't我使用了AJAX响应的一部分
- 仅重新加载网页的一部分
- 如何使用ViewCompiler手动编译DOM的一部分
- Regex提取URL返回数组的一部分;未定义”;
- Html地图对象-点击地图获取id的一部分
- 使用AngularJs时,如何在img标记具有src-attr时设置数据src
- jQuery中的attr()是否强制小写
- 如何使用JavaScript提取此url的一部分
- 将字符串的一部分设置为数组的一部分
- 用数字单位替换字符串的一部分
- JQuery .attr();
- 如何对单个页面进行密码保护(这不是身份验证系统的一部分)
- 附加和删除输入值的一部分
- 仅对标题标记的一部分使用document.write
- 获取一个javascript对象attr's
- 如何使表格的一部分变灰
- 通过JavaScript设置的表单字段的值不会作为$_POST的一部分传递给PHP脚本
- 只是.attr()的一部分