2013-12-18 3 views
0

У меня есть массив с объектами, каждый объект, div, имеет id. Можно ли получить номер индекса массива данного объекта на основе его id, используя это?Получить номер индекса массива на основе элемента массива id

var index = ar.map(function(el) { 
    return el. ?? 
}).indexOf('objectID4'); 
+0

Возможный дубликат http://stackoverflow.com/q/19111224/1636522 – leaf

ответ

2

Как это:

var index = ar.map(function(el) { 
    return el.id; 
}).indexOf('objectID4'); 

рабочий пример: http://jsfiddle.net/bvT6B/

+0

Я пробовал это, я получаю -1. и я знаю, что objectID4 существует точно – user3024007

+0

@ user3024007 Может быть, чувствительность к регистру в – thefourtheye

+0

да, я вижу ... Мне нужно выяснить, почему мой живой код не принимает его – user3024007

-1

Это это то, что вы хотите?

<div id="x1" class='foo'></div> 
<div id="x2" class='foo'></div> 
<div id="x3" class='foo'></div> 

<div id="res"></div> 
<script> 
function getIndexOfById(uid) { 
    var id = null; 
    $('.foo').each(function() { 
     if ($(this).attr('id') == uid) {id = $(this).index();} 
    }); 
    return id; 
} 

$('#res').html(getIndexOfById('x1') + '/' + getIndexOfById('x2') + '/' + getIndexOfById('x3')); 
</script> 

В результате

0/1/2 
+0

'$ ('# x1'). index ('.foo') '!!! – leaf

0

проверка ниже кода

var ar = [{'id':'objectId1','foo':'bar'},{'id':'objectId4','foo':'bar'}] 

var index = ar.map(function(el) { 
    return el.id; 
}).indexOf('objectId4'); 

alert(index); 

Или вы можете увидеть в http://jsfiddle.net/VJrWc/

Если это не вы хотите, чтобы доля больше некоторый код и очистите свою цель.

Смежные вопросы