如何创建一个jQuery监听器来遍历一些标记
How to create a jQuery listener to iterate through some markup
我想在一个元素上创建一个简单的工具提示(星级),我希望能够在每个开始处悬停,并显示不同的消息。
我面临的问题是,星号标记的输出并没有给每个星号一个唯一的标识符,所以我必须迭代每个星号集合,并为每个星号应用一个监听器。
每个星1-5将具有相同的消息,例如星1=消息1,星2=消息2,等等。
如果有人能帮忙的话,我想知道如何创建监听器并将html和消息应用到那个特定的星,我想用jQuery来做这件事。
这是星形标记输出
<div class="stars">
<div class="ui-stars-star ui-stars-star-on ui-stars-star-disabled">
<a title="">1</a>
</div>
<div class="ui-stars-star ui-stars-star-on ui-stars-star-disabled">
<a title="">2</a>
</div>
<div class="ui-stars-star ui-stars-star-on ui-stars-star-disabled">
<a title="">3</a>
</div>
<div class="ui-stars-star ui-stars-star-on ui-stars-star-disabled">
<a title="">4</a>
</div>
<div class="ui-stars-star ui-stars-star-on ui-stars-star-disabled">
<a title="">5</a>
</div>
<input type="hidden" value="5" name="rate_overall" disabled=""/>
</div>
感谢
您可以将相同的事件侦听器绑定到每个元素,并在执行时检查文本(使用不同元素不同的$(this)
):
$(".ui-stars-star").mouseover(function() {
var text = $(this).find("a").text(); // e.g. "1" or "2"
// now use `text` to fetch the correct message and show it
});
为什么要迭代?你有一个适合你的明星的课程,所以一个电话就可以了:
$('.ui-stars-star')
.on('mouseenter', function() {
...
})
.on('mouseleave', function() {
})
然而,这是特别有效的,因为它在每个有该类的元素上注册处理程序。也就是说,这也是您当前代码要做的。
权衡是使用事件委托,使用.on
:的三参数版本
$('.ui-stars-star', document, function() { ... });
不过,这里的缺点是CPU效率——jQuery中的委托处理程序系统将为页面上的每一次鼠标移动调用。
您可以使用index()
函数。即:
$('.ui-stars-star').mouseenter(function() {
switch ($(this).index()) { ..
}
您可以使用jQuery的:contains
选择器通过元素的文本获取元素:
$(".ui-stars-star a:contains(1)")
$(".ui-stars-star a:contains(2)")
...so on
相关文章:
- 循环遍历以数组为值的Javascript对象
- 遍历类元素数组,并在jquery中选择同级元素
- Jquery遍历表元素
- Chrome扩展:遍历不同的页面并收集数据
- 如何遍历包含对象的数组-javascript
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 遍历AngularJs中的对象
- JQuery 遍历当前 SELECT 值
- 循环遍历包含另一个表单的表单
- 使用Yadda和Protractor重用步骤定义,遍历所需文件
- 遍历D3中所有数据点之间的所有值
- 自动遍历所有链接的事件
- JS.循环遍历多维数组,以计数元素在每列中的出现次数
- 如何使用 document.querySelectorAll 遍历选定的元素
- 使用Javascript反向遍历XML
- 当知道同一hiearch中至少有一个元素时,遍历到元素.结构使用jquery
- Netsuite Suitelet:在不达到治理限制的情况下,遍历事务行项目的列表加载和提交记录
- 遍历DOM查找字符串有时会正确返回
- 如何使用SnapSVG将SVG作为树结构遍历
- 如何创建一个jQuery监听器来遍历一些标记