我有一个ID包含第一个静态部分和第二个动态值的组件,如下所示:
<div id="smallPlacardone">
其中:smallPlacard
是静态的,one
是使用变量传递的。
稍后在我的代码中,我想使用ID的动态部分,即one
,而不是第一个静态部分smallPlacard
,如下所示:
var clicked = $(this).parent().attr("id");
$("#right"+clicked+"").show();
最好的方法是什么?
答案 0 :(得分:2)
如果“smallPlacard”是静态的,那么您可以使用replace方法删除它:
var clicked = $(this).parent().attr("id").replace(/smallPlacard/, '');
$("#right" + clicked).show();
答案 1 :(得分:2)
我建议使用分隔符字符和split()
。它更容易阅读并完全避免正则表达式:
<div id="smallPlacard_one">
和
var clicked = $(this).parent().attr("id").split("_")[1];
$("#right_" + clicked).show();
或者像这样的东西,它更灵活,因为它不依赖于隐藏的约定:
<div id="smallPlacard_one" data-show="#right_one">
和
var selector = $(this).data("show")
$(selector).show();