如何动态改变EJS中元素的属性

问题描述 投票:0回答:1

我已经被这个问题困扰了很长一段时间。我试图在我的 EJS 中使用 jQuery 来更改元素的属性。然而在Google上搜索了很久,还是无法解决这个问题。

正如我的标题所说,我愿意在 foreach 循环中将按钮的“id”和 div 中的“data-target”从“collapseOne”更改为“request._id”,以便属性在每次迭代中发生变化。请看下面我的代码

    <% outboundList.forEach(function(requests){ %>
    <div class="card">
      <div class="card-header" id="headingOne">
        <h5 class="mb-0">
          <button id="outboundListTitle" class="btn btn-link" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="">
            <script type="text/javascript">
              $('#outboundListTitle').attr("aria-controls", requests._id)
              $('#outboundListTitle').attr("data-target", requests._id)
            </script>

            <%= requests.clientName %>_<%= requests.wareHouseLabel %>_<%= requests.oldSku %>_<%= requests.productQt %>
          </button>
        </h5>
      </div>

      <div name='outboundListContent' class="collapse show" aria-labelledby="headingOne" data-parent="#accordion" id="collapseOne" >
        <script type="text/javascript">
          $( "div[name~='outboundListContent']" ).attr("id", requests._id)
        </script>
        <div class="card-body">
         
----- some content ----

        </div>
      </div>
</div>

我尝试用 <%= request._id%> 更改属性以替换 if 和 datta-target,但这似乎不起作用。

请帮忙。

jquery attributes ejs
1个回答
0
投票

好吧,如果有人仍然面临这个问题,可以通过在变量周围使用单引号或双引号('')轻松解决。

在您的情况下,只需在变量周围加上单引号

$('#outboundListTitle').attr("data-target", '<%= request._id%>')

因为,您希望该变量的值显示在那里,因此,使用引号将首先评估该变量的值,然后进一步移动。 如需更多参考,您可以阅读docs

© www.soinside.com 2019 - 2024. All rights reserved.