如何在 Javascript onclick 事件中使用正则表达式测试 id(在 HTML 中)?

How can I use regex for testing id (in HTML) in Javascript onclick event?

我是新手(在提问方面),遇到过一个问题,我在互联网上找不到任何解决方案。

我有一个 Django 模板(这与 Django 无关)

<select id="select1">
    <option value="0">-- {% trans "Choisir" %} --</option>
    {% for site in sites %}
    <option value="{{ site.City }}" onclick='$("#{{site.City}}").show();'>{{ site.City }}</option>
    {% endfor %}
</select>

为了显示div对应的:<div class="zone" id='{{site.City}}'> 这很好用,我还可以通过单击按钮显示所有 div :<button class='small' onclick='$(".zone").show();'>{% trans "Show all" %}</button>

我想做的是在 site.City div 中添加一些其他 div ,如下所示:

{% for site in sites %}
    <div class="zone" id='{{site.City}}'>
        <h4>{% trans "Site" %} : {{ site.City }}</h4>
        {% for immo in immos %}
            {% if immo.idSite.City == site.City %}
                <div class='zone' id='{{site.City}}{{immo.CodeImmo}}'>

我可以使用 Javascript 的 onclick 方法显示 1 div id='{{site.City}}{{immo.CodeImmo}},但我找不到显示所有 div id='{{site.City}}{{immo.CodeImmo}} 的方法divid='{{site.City}}'对应,不显示全部divid='{{site.City}}'

我已经搜索了一些正则表达式 Javascript 解决方案,但它不起作用。

onclick='$("#/^{{site.City}}/").show();'

这就像我只想测试部分 id 并在 Javascript 中使用它。
有没有办法做到这一点?或者我做错了什么?
问题是如何在 Javascript onclick 事件中使用正则表达式测试 id (in HTML)?

试试这个:

在模板中:

{% for site in sites %}
    <div class="zone" id='{{site.City}}'>
        <h4>{% trans "Site" %} : {{ site.City }}</h4>
        {% for immo in immos %}
            {% if immo.idSite.City == site.City %}
                <div class='zone' id='{{site.City}}{{immo.CodeImmo}}' class='city_{{site.City}}'>

点击侦听器:

onclick='$(".city_{{site.City}}").show();'

Jquery selectors (mostly) tries to be same as CSS selectors。 CSS 在需要 select 多个项目时使用 classes。对比ids:每个节点可能有很多class,不同节点有相同的class是正常的。