首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在类的元素上应用javascript

如何在类的元素上应用javascript
EN

Stack Overflow用户
提问于 2021-05-11 16:14:40
回答 1查看 36关注 0票数 0

我的问题是我希望在两个元素上都应用.slim类。不仅仅是第一个

代码语言:javascript
复制
new SlimSelect({
  select: '.slim-select'
})
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/slim-select/1.27.0/slimselect.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/slim-select/1.27.0/slimselect.min.css" rel="stylesheet"></link>

<form>
  <select class="slim-select" class="info__select">
    <option value="java" data-thumbnail="'https://orig00.deviantart.net/d5fa/f/2012/088/3/0/30e49c0ab37799728a5dfc28d92bbcb7-d4ubbj8.jpg'">Java</option>
    <option value="dot-net">.NET</option>
    <option value="php">PHP</option>
    <option value="c">C/C++</option>
    <option value="swift">Swift</option>
    <option value="android">Android dev</option>
    <option value="ruby">Ruby</option>
    <option value="python">Python</option>
    <option value="node">NodeJs</option>
    <option value="javascript">Javascript</option>
  </select>
  <br><br>

  <select class="slim-select" class="info__select">
    <option value="java" data-thumbnail="'https://orig00.deviantart.net/d5fa/f/2012/088/3/0/30e49c0ab37799728a5dfc28d92bbcb7-d4ubbj8.jpg'">Java</option>
    <option value="dot-net">.NET</option>
    <option value="php">PHP</option>
    <option value="c">C/C++</option>
    <option value="swift">Swift</option>
    <option value="android">Android dev</option>
    <option value="ruby">Ruby</option>
    <option value="python">Python</option>
    <option value="node">NodeJs</option>
    <option value="javascript">Javascript</option>
  </select>

</form>

EN

回答 1

Stack Overflow用户

发布于 2021-05-11 16:22:10

slim select不是jquery插件,也不遵循jquery插件规则。

最好的解决方案是将new SlimSelect封装在一个循环中:

代码语言:javascript
复制
$(".slim-select").each((i, e) => {
  new SlimSelect({
    select: e
  })
});

快速浏览一下源代码就会发现,Slim Select使用了document.querySelector(info.select) --它总是返回单个元素,因此无法让SlimSelect通过一次调用应用于多个元素。

更新的代码片段:

代码语言:javascript
复制
//new SlimSelect({
//  select: '.slim-select'
//})

$(".slim-select").each((i, e) => {
  new SlimSelect({
    select: e
  })
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/slim-select/1.27.0/slimselect.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/slim-select/1.27.0/slimselect.min.css" rel="stylesheet"></link>

<form>
  <select class="slim-select" class="info__select">
    <option value="java" data-thumbnail="'https://orig00.deviantart.net/d5fa/f/2012/088/3/0/30e49c0ab37799728a5dfc28d92bbcb7-d4ubbj8.jpg'">Java</option>
    <option value="dot-net">.NET</option>
    <option value="php">PHP</option>
    <option value="c">C/C++</option>
    <option value="swift">Swift</option>
    <option value="android">Android dev</option>
    <option value="ruby">Ruby</option>
    <option value="python">Python</option>
    <option value="node">NodeJs</option>
    <option value="javascript">Javascript</option>
  </select>
  <br><br>

  <select class="slim-select" class="info__select">
    <option value="java" data-thumbnail="'https://orig00.deviantart.net/d5fa/f/2012/088/3/0/30e49c0ab37799728a5dfc28d92bbcb7-d4ubbj8.jpg'">Java</option>
    <option value="dot-net">.NET</option>
    <option value="php">PHP</option>
    <option value="c">C/C++</option>
    <option value="swift">Swift</option>
    <option value="android">Android dev</option>
    <option value="ruby">Ruby</option>
    <option value="python">Python</option>
    <option value="node">NodeJs</option>
    <option value="javascript">Javascript</option>
  </select>

</form>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67482877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档