javascript - jQuery:如何绑定(bind)同一类的多个元素?

标签 javascript jquery bind

我创建了一个 div,我想根据用户点击该 div 下面的一系列链接中的哪个链接来填充不同的嵌入视频。目前,该功能仅适用于列表中的顶部链接。单击第一个链接下的任何链接都不会产生任何效果。这是 JS:

$(document).ready(function(e){
$('a.videoBoxLinks').bind('click',function(e){
var vidUrl = $(this).attr('href');
var vidBox = $(this).prev('.videoBox');
vidBox.html('<iframe src="' + vidUrl + '" width="400" height="300" frameborder="0"></iframe>');
e.preventDefault(); //stops the browser click event
});
});

和 HTML

<div class="videoBox">
<h1>default content to be replaced</h1>
</div>
<a class="videoBoxLinks" href="videoURL1">Test 1</a></br> <!--this one works-->
<a class="videoBoxLinks" href="videoURL2">Test 2</a> <!--this one doesn't-->

最佳答案

而不是

var vidBox = $(this).prev('.videoBox');

使用

var vidBox = $(this).prevAll('.videoBox');

.prev只会找到紧邻的前一个同级,而 .prevAll将找到所有前面的 sibling 。

关于javascript - jQuery:如何绑定(bind)同一类的多个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5725612/

相关文章:

java - 在客户端服务器应用程序中动态选择连接端口

javascript - VueJS Master Checkbox 切换数组值

javascript - Jquery 对象 #<Object> 没有方法 'getElement'

javascript - 使用边界框策略加载 Open layers 3 jsonp 向量层?

jquery - 在每个对象上设置 ClientIDMode = Static 是否有任何缺点(在母版页的主要内容上设置)

c++ - boost::bind 如何与提供的签名不匹配但工作正常?

javascript - Angular 5 应用程序无法在 IE11 中呈现

javascript - 使用 jStorage 设置和获取输入值

jQuery - 图像开始时不可见,然后在用户滚动时淡入

wpf - 当后面的代码更改绑定(bind)源时更新 UI