0

我将如何选择:

object.id2 == "name1";

使用 jQuery (而不是遍历所有对象并找到id2匹配的对象"name1"),所以我可以编写如下内容:

$("name1");

或者可能:

$(object + " name1");

或者可能:

$(object).attr('id2','name1');
4

4 回答 4

3

您可以使用Lodash

var namedObjects = _.find(allObjects, { id2: 'name1' });
于 2013-10-18T18:18:58.147 回答
1
var myObj = $('[id2="name1"]') 
//myObj will be an array if there is more than one element that matches

如此处所示:jQuery 选择器 API

于 2013-10-18T18:21:32.133 回答
1

这可能不是最好的方法,但如果你坚持用 jquery 做,这将是这样做的方法:

var theArr = [{id2:"name0"},{id2:"name1"}];

var myObj = $(theArr).filter(function(){
    return this.id2 === "name1";
}).get(0);

console.log(myObj); // Object {id2: "name1"} 

http://jsfiddle.net/Tentonaxe/kTxkr/

当然,如果你不必支持 IE<9,你可以在不做太多改动的情况下将 jquery 去掉:

var theArr = [{id2:"name0"},{id2:"name1"}];

var myObj = theArr.filter(function(obj){
    return obj.id2 === "name1";
})[0];

console.log(myObj); // Object {id2: "name1"} 

http://jsfiddle.net/Tentonaxe/kTxkr/1

于 2013-10-18T18:40:09.850 回答
0

我不确定我是否完全理解您的问题,但是如果您创建这样的对象:

var foo = {id2 : "name1"};

您可以像这样使用 jQuery 选择器:

$(foo)
于 2013-10-18T18:21:48.833 回答