JavaScript或jQuery文件用相同的脚本放置不同的地方
JavaScript or jQuery file with same script different place its different
我对jQuery或JavaScript有问题。我使用bootstrap css框架。在这个问题上,我有一个相同的脚本,放在不同的地方。但是这个脚本根本不起作用。你可以看到截图来帮助我。我使用bootstrap css框架,我很怀疑,我不知道如何在页面中的不同位置制作相同的脚本是不同的。我不理解最后一个。希望你能理解。提前感谢!
/* this the script.js */
$("#image").find("img").each(function(){
var $this = $(this),
getClass = $this.attr('img')
splitClass = $this.prop('id').split("-")
if(splitClass[1] <= 20) {
$this.attr("src", "http://lorempicsum.com/futurama/350/200/1");
} else if(splitClass[1] >= 40) {
$this.attr("src", "http://www.top13.net/wp-content/uploads/2014/11/4-small-flowers.jpg");
} else {
$this.attr("src", "http://www.top13.net/wp-content/uploads/2014/11/4-small-flowers.jpg");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
<div class="col-xs-6 col-sm-12 col-md-12 col-lg-12">
<div id="image">
<div class="thumbnail">
<img id="img-1" src="http://www.cma.rw/sites/default/files/default_images/default_image1.gif" />
</div>
<div class="thumbnail">
<img id="img-2" src="http://www.cma.rw/sites/default/files/default_images/default_image1.gif" />
</div>
</div>
<!---this the script---->
<script src="script.js"></script>
</div>
</div>
<!------ Many Text in here ------------>
<p>the script in top is working but the script in bottom is not working because there is same script. how can i set be same work. with only one script the text must be in here. help me</p>
<!---------------------->
<div class="row">
<div class="col-xs-6 col-sm-12 col-md-12 col-lg-12">
<div id="image">
<div class="thumbnail">
<img id="img-3" src="http://www.cma.rw/sites/default/files/default_images/default_image1.gif" />
</div>
<div class="thumbnail">
<img id="img-4" src="http://www.cma.rw/sites/default/files/default_images/default_image1.gif" />
</div>
</div>
<!---this the same script with the top script---->
<script src="script.js"></script>
</div>
</div>
试试这个:
$("#image img").each(function(){
var $this = $(this),
getClass = $this.attr('img')
splitClass = $this.prop('id').split("-")
if(splitClass[1] <= 20) {
$this.attr("src", "http://lorempicsum.com/futurama/350/200/1");
} else if(splitClass[1] >= 40) {
$this.attr("src", "http://www.top13.net/wp-content/uploads/2014/11/4-small-flowers.jpg");
} else {
$this.attr("src", "http://www.top13.net/wp-content/uploads/2014/11/4-small-flowers.jpg");
}
});
Fiddle
---在原始代码中,$("#image").find("img")
将只选择id为#image
的第一个div
。而$("#image img")
将选择作为id为#image
的元素的子元素的所有img
。
为什么find()
似乎不能处理$("#image")
返回的每个元素,我不确定。如果有人能解释这一点,我很想听。---
正如Pete所指出的,最初的选择器是一个只返回第一个匹配元素的id。请参阅下面使用类的解决方案。
编辑
正如已经指出的,id应该是唯一的。以下是不使用重复id的更好解决方案。
$(".image img").each(function() {
var $this = $(this),
getClass = $this.attr('img')
splitClass = $this.prop('id').split("-")
if (splitClass[1] <= 20) {
$this.attr("src", "http://lorempicsum.com/futurama/350/200/1");
} else if (splitClass[1] >= 40) {
$this.attr("src", "http://www.top13.net/wp-content/uploads/2014/11/4-small-flowers.jpg");
} else {
$this.attr("src", "http://www.top13.net/wp-content/uploads/2014/11/4-small-flowers.jpg");
}
});
Fiddle
相关文章:
- 如何运行从TFS获取项目的windows脚本文件
- 在HTML中,如果第二次加载相同的脚本文件,它还会被加载吗
- Project和作为web应用程序发布的多个doGet()脚本文件——需要澄清
- 引用nodejs服务器中html中的java脚本文件
- Firefox扩展开发:如何在内容脚本中创建一个全局函数,以便其他加载的脚本文件可以访问它
- 查看由 java 脚本文件上传器选择的文件的文件内容
- 如何通过$.getScript()获取脚本文件
- 公共脚本文件上的访问节点文件
- 使用gulp和browserfy从脚本文件进程访问Jquery库
- 在局部视图中加载脚本文件
- 用按钮动态替换java脚本文件
- jQuery单个脚本文件不是特定于*this*页面-显示“;undefined不是函数”;
- 是否可以不在grunt中提及所有的脚本文件路径
- 如何使用react和gump动态加载脚本文件
- Kinetic JS无法从外部脚本文件中工作
- 使用script元素上的html data-*属性来配置引用的脚本文件
- RequireJS-使用CDN加载非脚本文件
- 如何在Chrome扩展中使用内容脚本文件注入CSS
- 如何用JavaScript中的Ajax调用代替加载脚本文件(将YQL与JavaScript一起使用)
- JS脚本文件夹,而不是“;脚本”;在服务器ASP.NETMVC上部署后不可见