使用jQuery在不使用ID和Name的情况下实现跨度的单击事件
Using jQuery to realize a click event for a span without using ID and Name
如何使用jQuery点击如下所示的span选项卡?
像这样:
<span data-bind="event: {click: toggleshow}, css: {open: more()}" class="">
Expand<span></span>Search</span>
您可以在span中添加一个css类,并将该css类用作注册click
事件的jQuery选择器
<span class="myspan" id="someId">Test</span>
<span class="myspan" id="someOtherId">Test Again</span>
jQuery代码将是
$(function(){
$("span.myspan").click(function(e){
alert("clicked");
var itemId=$(this).attr("id");
alert(itemId);
});
});
这是的工作样本
如果不能向该跨度添加css类或其他属性,则可能需要使用非常宽的jQuery选择器,它只是span
标记。
$("span").click(function(e){
alert("clicked");
});
但此单击事件将注册到页面中所有span的。另一种选择是将这些跨度封装在容器div中,并在jQuery选择器中使用它,这样只有这些跨度才会被注册用于单击事件。
<div id="myContainer">
<span data-bind="event: {click: toggleshow}, css: {open: more()}" class="">
Expand<span></span>Search</span>
</div>
注册点击事件的jQuery代码将是
$(function(){
$("#myContainer span").click(function(e){
alert("clicked");
});
});
这是一个工作样本。
因此,如果你不想使用类或id(你应该这样做),有两个选项:
- 阅读有关CSS选择器的内容并找到合适的选择器
- 打开浏览器中的检查器工具,右键单击跨度元素,然后选择选项"复制唯一Selector"(Firefox)或"Copy>Copy Selector"为元素自动生成选择器
然后与jQuery一起正常使用:$("copy_pasted_probably_very_long_selector").click()
1st:在html中使用
</span><span>Search</span>
而不是
<span></span>Search</span>
第二次:当您为点击事件标记javascript/Jquery时,您可以使用.filter()
$('span').filter(function(){
return $(this).text().trim() == 'Expand';
}).on('click' , function(){
//code here for Expand span
});
工作演示这将适用于扩展span。。使用与搜索一个相同的方法
您可以使用event
对象来查找nodeType
HTML
<span class="item-content">Button 1 </span>
<span class="item-content">Button 2 </span>
<div class="item-content">Button 3 </div>
<button class="item-content">Button 4 </button>
JS-
$('body').on('click',function(event){
alert(event.target.nodeName)
})
事件对象有许多其他键,这些键在需要时也很方便。您只需console.log(event)
即可查看其他密钥。
工作模型
注意:我使用了多个标签只是为了演示。虽然每个元素都有一个类,但我只是将其用于样式设计。
希望这将是有用的
相关文章:
- 如何在没有按钮的情况下实现显示隐藏JavaScript
- 如何在没有JQuery的情况下正确实现无限滚动的AngularJS表
- 在什么情况下我们需要在javsacript中实现单例类
- 在不使用现代化的情况下实现此结果
- 在这种情况下,我如何在jquery中实现限制字符
- 在以下情况下,如何使用AJAX实现删除功能
- setTimeout()是如何实现的,这样它就可以在不阻塞主线程的情况下跟踪经过的时间
- 打字稿 - 在不实现接口父级的情况下实现接口
- 如何在进行 ajax 调用的情况下实现后退按钮
- 如何在有或没有Iframe的情况下实现SEO友好的Spotify/Rhapsody/iTunes类界面
- 在没有“位置”属性的情况下实现绝对定位,使用边距/填充
- 在这种情况下在 JavaScript 中实现继承 [更具体地说是 node.js]
- 如何在不显示弹出窗口的情况下实现推特关注
- 如何在没有 Flash 的情况下在火狐中实现复制到剪贴板.需要实施
- 如何在没有Flash/Java的情况下实现浏览器到浏览器的通信(允许服务器作为桥梁)
- 使用jQuery在不使用ID和Name的情况下实现跨度的单击事件
- 如何在不使用apply的情况下实现Function.prototype.apply
- 在不访问标记的情况下实现jquery显示/隐藏切换
- 在使用webgl、html5画布的情况下,使用图像实现三维图形
- 在这种情况下如何实现回调函数