我遇到了两个对象数组的情况。 我想从两个数组中选择相同的对象并显示它。 例如我有以下UL( 您可以在jsFiddle上看到它 ):

<ul>
<li id="one" class="color pro">one</li>
<li id="two" class="color pro">two</li>
<li id="three" class="color">three</li>
<li id="four" class="color">four</li>
</ul>

我正在使用以下脚本来显示相同​​的对象。

var activeElementsColors = $("ul li.color");
var activeElementsPro = $("ul li.pro");                             

var activeElements = activeElementsPro.filter(function(el) {  
return $.inArray(el, activeElementsColors) > -1;
});

activeElements.show();

我知道我可以使用$(“ li.color.pro”)。show(),但以上只是一个示例。 实际的代码比这复杂。

===============>>#1 票数:2

传递给.filter的函数中的第一个参数是jQuery对象中元素的索引,而不是元素本身。 使用this相反,这确实涉及到的元素: http://jsfiddle.net/StPew/7/

var activeElements = activeElementsPro.filter(function() {
    return $.inArray(this, activeElementsColors) > -1;
});

文档

function( index )

用于测试集合中每个元素的函数。 this是当前的DOM元素。

===============>>#2 票数:2 已采纳

var activeElementsColors = $("ul li.color");
var activeElementsPro = $("ul li.pro");                             

var activeElements = activeElementsPro.filter(function(el,e) {  

    return $.inArray(e, activeElementsColors) > -1;
});
console.log(activeElements);
activeElements.show();

http://jsfiddle.net/StPew/8/

===============>>#3 票数:1

filter回调的参数是当前元素的索引。 改用this

return $.inArray(this, activeElementsColors) > -1;

那就是说你在做什么似乎很错误。 假设您真正想要的是.pro.color选择器的交集,那么您只需

$(".pro:.color").show();

小提琴

===============>>#4 票数:1

.filter()将jQuery对象作为参数,并返回一个新对象,该对象包含第一个对象中的元素减去第二个jQuery对象中不存在的元素,因此,如果您已经有了jQuery对象,则可以使用他们喜欢这样显示两个对象:

var activeElementsColors = $("ul li.color");
var activeElementsPro = $("ul li.pro"); 
activeElementsPro.filter(activeElementsColors).show();

  ask by Imran translate from so

未解决问题?本站智能推荐:

2回复

如果两个数组在Jquery中具有嵌套对象,则比较两个数组是否相等

我有两个数组,每个数组有5个对象。 在继续之前,我想检查这两个数组是否相等。 我试图寻找答案,但不幸的是找不到具有多个对象的嵌套数组的任何内容。 有没有办法做到这一点? 例如。 Array1 ==> 5个嵌套对象 Array2 ==> 5个嵌套对象 现在检查是
2回复

从两个数组中选择随机项目并匹配项目顺序

每当div单击时,此代码就会以随机顺序随机排列三个数组。 我希望两个数组“ quotes”和“ authors”显示相同的随机数组顺序。 我希望“第三”等于“-第三”,“第一”等于“-第一”,或者当x是随机的时,引号[x] == authors [x]。 还有没有一种简单的方法来组合.
3回复

使用Jquery:比较两个数组以进行任何匹配

我正在寻找一种简洁的方法来比较任何匹配的两个数组。 我正在使用此比较将特定样式应用于具有匹配内容的任何表格单元格。 一个数组是一个静态的内容列表,应该包含在页面上的至少一个表格单元格中。 另一个数组由JQuery生成,是所有表格单元格的文本。 我必须比较内容和应用样式的原因是HT
1回复

使用JQUERY解析XML - 排序为两个数组

我正在尝试使用JQuery解析一些XML,我想找到更新状态为0的条目并将它们添加到一个数组中,并将更新状态1更改为不同的数组。 XML: 我现在所拥有的只有: 我的主要问题是区分更新状态1或0。
1回复

如何在jQuery中使用linq比较两个数组列表对象

我必须使用jQuery linq比较两个数组列表对象。 我只想获取匹配的数组。
4回复

jQuery grep有两个数组?

是我的语法,还是我试图做的完全错误的方法? 我有两个由用户选择的属性填充的数组。 然后,我尝试在json文件上使用$ .grep()来选择与其搜索匹配的枕头。 因此,在下面的示例中,我试图找到所有带有“羽绒”填充物和“低价”枕头的枕头。 我是一个顽强的Googler,但这让我感
2回复

结合两个数组jquery

我有两个数组 - 例如[8, 7, 6, 5]和[5, 6, 7] 。 我能用什么方式接收新阵列[7, 6, 5] 7,6,5 [7, 6, 5] 。 因此,顺序必须与第一个数组相同 , 元素 必须与第二个 数组 相同 并且它可以是数组中的不同值,而不仅仅是数字。 谢谢。
1回复

使用jQuery / jHashtable在javascript对象中选择子数组

我有一个这样的对象: 而且我正在尝试使用jHashtables containsValue-function进行搜索(我愿意解决其他适用的搜索方法),例如containsValue(data.playlist, 'Excalibur') 。 但是由于某种原因,它返回false 。 如
3回复

如何在jQuery中合并两个数组对象元素

这个问题已经在这里有了答案: 如何动态合并两个JavaScript对象的属性? 59个答案 输入: 我想要这样的输出
1回复

如何使用javascript或jquery从具有相同CSS类名称的两个不同下拉列表中选择选项

我想更新两个下拉菜单中的值,如所附图像所示,看看html代码是否相同(两个选择都使用相同的CSS属性) 和 相同的AJAX代码如下,该代码绑定所有输入数据并推送到API 我能够成功获取一个下拉值,但无法获取另一个下拉值,下面的语句仅给出一个下拉值,但不能同时给出两个