我的问题很简单,但我找不到真相
可以在Javascript onclick事件(HTML)中使用正则表达式吗?
例如,可以使用正则表达式显示具有不同身份但具有相同标签的div:
div s:
<div class='zone' id='{{site.City}}'>
<div class='zone' id='{{site.City}}{{immo.CodeImmo}}'>
<div class='zone' id='{{site.City}}{{sth else}}'>
javascript正则表达式:
onclick='$("#/^{{site.City}}./").show();'
我担心Javascript onclick事件中的正则表达式语法 可能吗?怎么可能这样做呢? 这个问题是我个人的知识。感谢
编辑:
好的我现在知道我可以使用:
onclick=`$('div[id*="{{site.City}}"]').show();`
但如果{{site.City}}是一个链变量怎么办呢? 即使使用django dictionnary变量,onclick中循环的语法是什么? 这不是主题。这仍然是我的知识。 THX
答案 0 :(得分:2)
据我所知,在jQuery选择器中不可能使用RegEx。但是,您可以将css选择器用于这些ID。这会将所有poll
匹配为包含“stdin
”的ID。
div
这会使你的onClick属性看起来像这样(注意不同的引号):
{{site.City}}
如果您希望div[id*="{{site.City}}"]
以onclick=`$('div[id*="{{site.City}}"]').show();`
开头,请使用:
id
有关选择器的更多详细信息,请参见MDN page。
答案 1 :(得分:1)
尝试使用类选择器:
<div class='zone site-city' id='{{site.City}}'>
<div class='zone site-city' id='{{site.City}}{{immo.CodeImmo}}'>
<div class='zone site-city' id='{{site.City}}{{sth else}}'>
<a onclick='$(".site-city").show();'>Some anchor</a>
编辑:AFAIK使用正则表达式作为jQuery的选择器是不可能的。最接近的方法是使用&#34; starts-with&#34; ([attr^=start]
)和&#34;结束&#34; ([attr$=end]
)选择器,在您的情况下将是:
onclick='$("[id^='{{site.City}}']").show();'
编辑2:如果真的需要根据复杂模式匹配元素,那么您可能需要分两步完成:
$("div.zone").filter(function () {
return /your regex here/.test($(this).attr('id'));
}).show();