我正在使用动态div的网站上工作。我的代码如下: -
<div class="abc">
<div clas="whole_0" style="background-image:url('demo0.jpg'); display:none;"></div>
<div clas="whole_1" style="background-image:url('demo1.jpg'); display:none"></div>
<div clas="whole_2" style="background-image:url('demo2.jpg');"></div>
</div>
<a href="#">Change-class</a>
<a href="#">get url of previous</a>
当我徘徊在&#39;改变班级&#39;而且这个班级正在动态变化。
我想要的是,当我悬停或点击它时,前一个div的背景图像的网址(运行类是全2)我想要整个_1的背景图像网址.... 希望你能得到我所说的...... 提前谢谢....
答案 0 :(得分:1)
没有问题。
我认为,对于<div clas="whole..
,你的意思是div class="whole..
,这只是一个错字
这是:http://jsfiddle.net/RBQ8D/1/
$('.click').on('click',function(){
$('.abc div').each(function(){
if($(this).css("display")=="block") {
alert($(this).prev().attr("style"));
}
});
});
仅使用背景图片进行更新 抱歉@Zlatin Zlatev偷走了你的
$('.click').on('click',function(){
$('.abc div').each(function(){
if($(this).css("display")=="block") {
alert($(this).prev().css("background-image"));
}
});
});
现在,取决于您的“活动”图片,您可能会遇到代码片段的麻烦,因此您需要检查它是否是第一个元素。你可以这样做:http://jsfiddle.net/RBQ8D/3/
$('.click').on('click',function(){
$('.abc div').each(function(e){
if($(this).css("display")=="block" && e > 0) {
alert($(this).prev().css("background-image"));
} else if($(this).css("display")=="block" && e==0) {
alert("next -->" +$(this).next().css("background-image"));
}
});
});
答案 1 :(得分:0)
您可以使用jquery.css("background-image")
来获取背景图像样式。
见http://api.jquery.com/css/
我建议您使用某种变量/属性/类来存储当前状态,并根据它来获取序列中的上一个或下一个图像。
答案 2 :(得分:0)
扩展@caramba的答案 - 如果你想要的只是文字,而不是图片网址的路径,那么你必须使用一点正则表达式来获取它 -
$('.click').on('click', function () {
$('.abc div').each(function () {
if ($(this).css("display") == "block") {
var imgURLString = $(this).prev().attr("style");
console.log(imgURLString);
var imgURL = imgURLString.match(/\'.*?\'/); // get everything in single quotes in the style declaration, returns an array
console.log(imgURL[0]); // get the only item in that array, returns 'demo1.jpg'
}
});
});
所以这取决于你想要什么。可以修改正则表达式以使括号中的内容或任何其他括号。