Javascript jQuery:如何匹配ID的最后部分
为了打开带有一些内容的弹出窗口,我有许多标签锚,它们的ID以“poc”开头,比如poc1、poc2、poc3。。。 以同样的方式,我有相同数量的tag div,它们的id以“pop”开头,比如pop1、pop2、pop3。。。如何在jQuery中匹配它们以便 poc1-->pop1 poc2-->pop2 我写了一些类似的东西Javascript jQuery:如何匹配ID的最后部分,javascript,jquery,html,Javascript,Jquery,Html,为了打开带有一些内容的弹出窗口,我有许多标签锚,它们的ID以“poc”开头,比如poc1、poc2、poc3。。。 以同样的方式,我有相同数量的tag div,它们的id以“pop”开头,比如pop1、pop2、pop3。。。如何在jQuery中匹配它们以便 poc1-->pop1 poc2-->pop2 我写了一些类似的东西 jQuery("a[id^='poc']").click(function() { jQuery('#pop1').bPopup(); }); 但是我需要的不是
jQuery("a[id^='poc']").click(function() {
jQuery('#pop1').bPopup();
});
但是我需要的不是“pop1”,而是根据poc的最终值对应的pop。有可能吗?通过替换单击元素id中的字符串
poc
来获取特定编号:
jQuery("a[id^='poc']").click(function() {
var num = $(this).attr('id').replace('poc','');
jQuery('#pop' + num).bPopup();
});
示例
单击每个poc
元素,相应的pop
元素将变为红色
$('[id^=poc]')。在('click',function()上{
var num=$(this.attr('id').replace('poc','');
$('[id^=pop]')。removeAttr('style');
$('pop'+num).css({'color':'red'});
});代码>
poc1
poc2
poc3
pop1
pop2
pop3
通过替换单击元素id中的字符串poc
来获取特定编号:
jQuery("a[id^='poc']").click(function() {
var num = $(this).attr('id').replace('poc','');
jQuery('#pop' + num).bPopup();
});
示例
单击每个poc
元素,相应的pop
元素将变为红色
$('[id^=poc]')。在('click',function()上{
var num=$(this.attr('id').replace('poc','');
$('[id^=pop]')。removeAttr('style');
$('pop'+num).css({'color':'red'});
});代码>
poc1
poc2
poc3
pop1
pop2
pop3
我建议您使用如下属性:
向所有锚元素添加公共类
将数据目标
元素添加到锚点以存储目标div
id
使用类绑定事件
在事件处理程序中使用数据目标
值
HTML
<a id="poc1" data-target="#pop1" class="pocLinks"> Click Here </a>
<!-- ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
如果您不想更改现有的HTML
您可以使用从单击元素的id
中提取数字
jQuery("a[id^='poc']").click(function() {
var no = $(this).attr('id').match(/\d+/)[0];
$('#pop1' + no).bPopup();
});
Regex
/
:正则表达式分隔符
\d
:匹配任何数字
+
:匹配上一个实体一次或多次
我建议您使用以下属性:
向所有锚元素添加公共类
将数据目标
元素添加到锚点以存储目标div
id
使用类绑定事件
在事件处理程序中使用数据目标
值
HTML
<a id="poc1" data-target="#pop1" class="pocLinks"> Click Here </a>
<!-- ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
如果您不想更改现有的HTML
您可以使用从单击元素的id
中提取数字
jQuery("a[id^='poc']").click(function() {
var no = $(this).attr('id').match(/\d+/)[0];
$('#pop1' + no).bPopup();
});
Regex
/
:正则表达式分隔符
\d
:匹配任何数字
+
:匹配上一个实体一次或多次
分析当前ID-此.ID
将其用作选择器,用于bPopup()
分析当前ID-此.ID
将其用作选择器,用于bPopup()
根据kapantzak的解决方案为自己保存一个var:
jQuery("a[id^='poc']").click(function() {
jQuery( $(this).attr('id').replace('poc','#pop') ).bPopup();
});
根据kapantzak的解决方案为自己保存一个var:
jQuery("a[id^='poc']").click(function() {
jQuery( $(this).attr('id').replace('poc','#pop') ).bPopup();
});
使用data attr将pop的id存储在相应的poc元素中。然后,单击ReadDataAttr。我建议您为这些项添加一个类名。。使用dataattr将pop的id存储在相应的poc元素中。然后,单击ReadDataAttr。我建议您为这些项添加一个类名。。它会更简单、更好……无论如何,为了使它工作,$必须被jQuery取代……但我不明白为什么每个人都在需要jQuery时写$。。。我太无知了:($是jQuery的别名。只要没有其他可能导致命名空间冲突的js库,你就可以同时使用它们。无论如何,要使它正常工作,$必须被jQuery替换…但我不明白为什么每个人都在需要jQuery时写$。我太无知了:($是jQuery的别名。只要没有其他可能导致命名空间冲突的js库,您就可以同时使用这两个