这可能真的很琐碎,但我似乎找不到它,或者我没有在搜索合适的单词。
我想要的是为我所有的选择器创建一个函数,它们都有相应的数字。目前我有工作的函数,但我觉得有一个更好的方法来编写它。
请注意,我必须为每个按钮-1& cursusnummer1 /按钮-2& cursusnummer2创建函数
那么我怎么才能把它变成1而不是3呢
HTML
<ul id="cursusnummer1">
<li>20-4-2020 – Amsterdam – 13:00</li>
<li>24-4-2020 – Utrecht – 15:00</li>
<li>11-5-2020 – Groningen – 13:00</li>
<li>19-5-2020 – Haarlem – 15:00</li>
<li>22-6-2020 – Overveen – 11:00</li>
</ul>
<a class="button-1" target="_self" data-cursus="Cursus 1 - Title" href="#" data-toggle="modal" data-target=".modal.cursus"><span>Button Text</span></a>
jQuery
jQuery('.button-1').click(function () {
jQuery('#cursusmodal').on('shown.bs.modal', function() {
const dates = jQuery('#cursusnummer1 li').map((i, li) => jQuery(li).text()).get();
//stuff
});
});
jQuery('.button-2').click(function () {
jQuery('#cursusmodal').on('shown.bs.modal', function() {
const dates = jQuery('#cursusnummer2 li').map((i, li) => jQuery(li).text()).get();
//stuff
});
});
jQuery('.button-3').click(function () {
jQuery('#cursusmodal').on('shown.bs.modal', function() {
const dates = jQuery('#cursusnummer3 li').map((i, li) => jQuery(li).text()).get();
//stuff
});
});
发布于 2020-03-02 12:34:07
可以为参数初始子字符串使用^
符号,也可以为参数终止子字符串使用$
符号,或者再次为包含该子字符串的参数使用*
符号。
示例如下:
jQuery('[class^=button-]').click(function () {
jQuery('#cursusmodal').on('shown.bs.modal', function() {
const dates = jQuery('[id^=cursusnummer] li').map((i, li) => jQuery(li).text()).get();
//stuff
});
希望这个答案对你有效
发布于 2020-03-02 12:44:48
让我看看,你只需要一个函数来处理你所有的选择器。由于每个选择器都有一个打开的数字,因此您可以使用该数字。使用attr函数读取类并将其拆分。您将获得一个索引为1的数组,它是您的选择器的编号,然后将该编号用于您的下一个选择器。
jQuery('[class^=button-]').click(function () {
let ids=$(this).attr("class").split("-");
jQuery('#cursusmodal').on('shown.bs.modal', function() {
const dates = jQuery('#cursusnummer'+ids[1]+' li').map((i, li) =>
jQuery(li).text()).get();
//stuff
});
});
发布于 2020-03-02 14:00:21
你能不能不使用一个类做多个选择器,给你所有的按钮添加一个额外的类叫做按钮,例如:
jQuery('.button').click(function () {
jQuery('#cursusmodal').on('shown.bs.modal', function() {
const dates = jQuery(this).find("li").map((i, li) => jQuery(li).text()).get();
//stuff
});
});
https://stackoverflow.com/questions/60488842
复制