JQuery 选择器中的数组变量

Array variable in JQuery Selector

我有这个html:

<a href="page1.html" class="menuitem">Page 1</a>
<a href="page2.html" class="menuitem">Page 2</a>
<a href="page3.html" class="menuitem">Page 3</a>
<a href="page4.html" class="menuitem">Page 4</a>

在一个单独的 .js 文件中,我添加了一些 jquery 代码:

var menuArray = $("a.menuitem");

我尝试 运行 来自浏览器控制台的命令:

$(menuArray[2] + "[href*='page2.html']")

它给我关于无法识别的表达式的任何错误...

但是,这有效:

$("a.menuitem[href*='page2.html']")

将数组变量传递给 jquery 选择器的正确方法是什么?谢谢!

如果您想要所有链接值,请使用 map :

var allMenuItem = $('a.menuitem').map( function() {
  return $(this).attr('href');
}).get();

使用 .is() 过滤方法根据选择器范围检查当前匹配的元素。

$(menuArray[1]).is("[href*='page2.html']");

https://api.jquery.com/is/

var menuArray = $("a.menuitem");
console.log($(menuArray[1]).is("[href*='page2.html']"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="page1.html" class="menuitem">Page 1</a>
<a href="page2.html" class="menuitem">Page 2</a>
<a href="page3.html" class="menuitem">Page 3</a>
<a href="page4.html" class="menuitem">Page 4</a>