[英]Changing url depending on data attribute with jQuery
我在网页上有许多图像,它们的类名为.champions-category,每个图像都有一个名为data-window的数据属性,这些属性是从数据库动态获取的。 我要做的是检查类.champions-category的每个元素,并根据数据窗口内容的内容更改图像的src 。
<img src="" class="champions-category" data-window="teamwork">
<img src="" class="champions-category" data-window="focus">
<img src="" class="champions-category" data-window="results">
假设每个都是某种,然后是else语句,但不知道从哪里开始。
首先,您可以尝试属性选择器
$("img.champions-category[data-window='teamwork']").attr("src", "/path")
以后您可以用任何其他方式代替团队合作 。 您可以尝试如何确定URL的业务逻辑。
您可以使用jQuery Each
,然后使用switch语句根据data attribute
更改图像。
这是一个工作示例:
$('.champions-category').each(function(){ var getDataAttribute = $(this).attr('data-window'); switch (getDataAttribute) { case 'teamwork': $(this).attr('src','http://via.placeholder.com/20x200') break; case 'focus': $(this).attr('src','http://via.placeholder.com/40x200') break; case 'results': $(this).attr('src','http://via.placeholder.com/60x200') } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <img src="" class="champions-category" data-window="teamwork"> <img src="" class="champions-category" data-window="focus"> <img src="" class="champions-category" data-window="results">
使用jQuery .each:
$('img.champions-category').each(function() {
var self = $(this),
type = self.data('window');
if (type === 'teamwork') self.attr('src', 'teamwork-src-value-here.png');
//etc
});
以下内容将src替换为data-attribute的内容:
$('.champions-category').each(function () {
var $this = $(this);
var windowData = $this.data('window');
// Do data validation and manipulation here if needed.
$this.attr('src', windowData);
});
$(document).ready(function(){
$("img.champions-category[data-window]").each(function(){
var self = $(this);
self.attr("src",self.data("window")+".png");
});
});
已经讲了很多话,但让我在这个问题上加2美分。
img_urls = { "teamwork": "https://cdn4.iconfinder.com/data/icons/business-management-set-4-1/256/5-128.png", "focus": "https://heyfocus.com/assets/img/icon/FocusActiveAppIcon128px.png", "results": "https://www.shareicon.net/data/128x128/2016/09/05/825358_file_512x512.png", "question": "https://image.flaticon.com/icons/png/128/25/25400.png" } $("img.champions-category").each(function() { $(this).attr("src", img_urls[$(this).data("window")]); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <img src="" class="champions-category" data-window="teamwork"> <img src="" class="champions-category" data-window="focus"> <img src="" class="champions-category" data-window="results">
我们可以使用data-window
属性数据来分配图像源,如上所述。 img_urls
json可以包含所有可能的data-window
值的图像源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.