使用带编号的 ID 简化选择器
Simplify selector with numbered IDs
我在同一页面上有一系列 div,我为其附加了一个点击功能,它的作用类似于 <a>
标签,将用户引导至从自定义数据中提取的 URL -属性。我的HTML如下:
<div id="my-button1" class="button-style-1" data-href="http://www.whosebug.com">
Button
</div>
<div id="my-button2" class="button-style-1" data-href="http://www.w3schools.com">
Button 2
</div>
和jQuery:
$('#my-button1,#my-button2').click(function() {
var dataURL = $(this).data('href');
window.open(dataURL, '_blank');
});
我的问题是,是否可以将选择器简化为:
$('#my-button[i]')
如果我在同一页面上包含许多这样的 div,它会更紧凑吗?如果可以,我该如何实现这个效果?
为什么不在每个按钮上都使用 class?然后 select class
$('.my-buttons').click(...)
您可以使用 $('div[data-href]')
,它将应用于具有 data-href
属性的任何 div。
您的更新示例:https://jsfiddle.net/fLj7y0kz/1/
我已经完成并看到它完成的典型方法是按照@arop 的建议对这些元素使用特定的 class 并使用 class 选择器 $('div.myclass
)` .
您可以使用 nth-child() 属性 通过索引获取元素。看下面的示例代码
$('#my-button:nth-child (1)').click (function (){})
使用 loop.Hope 中的 ID 创建了动态 div,这对您有帮助
var mybutton = [];
var url = ["http://www.whosebug.com",
"http://www.w3schools.com",
"http://www.w3schools.com/jquery",
"http://www.w3schools.com/css"];
for (i = 0; i < 4; i++) {
//alert("hi");
$("body").append("<div class='button-style-1'
id='mybutton[" + [i] +"]' data-href=" + url[i] + ">Button</div>")
}
codepen - http://codepen.io/nagasai/pen/xOVERN
我在同一页面上有一系列 div,我为其附加了一个点击功能,它的作用类似于 <a>
标签,将用户引导至从自定义数据中提取的 URL -属性。我的HTML如下:
<div id="my-button1" class="button-style-1" data-href="http://www.whosebug.com">
Button
</div>
<div id="my-button2" class="button-style-1" data-href="http://www.w3schools.com">
Button 2
</div>
和jQuery:
$('#my-button1,#my-button2').click(function() {
var dataURL = $(this).data('href');
window.open(dataURL, '_blank');
});
我的问题是,是否可以将选择器简化为:
$('#my-button[i]')
如果我在同一页面上包含许多这样的 div,它会更紧凑吗?如果可以,我该如何实现这个效果?
为什么不在每个按钮上都使用 class?然后 select class
$('.my-buttons').click(...)
您可以使用 $('div[data-href]')
,它将应用于具有 data-href
属性的任何 div。
您的更新示例:https://jsfiddle.net/fLj7y0kz/1/
我已经完成并看到它完成的典型方法是按照@arop 的建议对这些元素使用特定的 class 并使用 class 选择器 $('div.myclass
)` .
您可以使用 nth-child() 属性 通过索引获取元素。看下面的示例代码 $('#my-button:nth-child (1)').click (function (){})
使用 loop.Hope 中的 ID 创建了动态 div,这对您有帮助
var mybutton = [];
var url = ["http://www.whosebug.com",
"http://www.w3schools.com",
"http://www.w3schools.com/jquery",
"http://www.w3schools.com/css"];
for (i = 0; i < 4; i++) {
//alert("hi");
$("body").append("<div class='button-style-1'
id='mybutton[" + [i] +"]' data-href=" + url[i] + ">Button</div>")
}
codepen - http://codepen.io/nagasai/pen/xOVERN