检查数组数组中是否存在变量

时间:2014-08-20 19:00:15

标签: javascript jquery arrays

我需要获取数组ID并将此id号放入var pointerid =(数组中的id号);
我正在使用此代码来存储元素中的cliked id:

jQuery('a').click(function(){
    var clickedId= $(this).attr("id");

现在我想搜索'元素' :'等于clickedId',如果是,则获取数组ID。 例如:
clickedId = test
wp_button_pointer_array [1] = {             '元件' :'测试'
所以这里'元素' :'测试' = clickedId(test)然后给我数组ID。这里的数组ID是1

 var wp_button_pointer_array = new Array();
 wp_button_pointer_array[1] = {
     'element' : 'wp-button-pointer',
     'options' : {
         'content': 'The HTML content to show inside the pointer', 
         'position': {'edge': 'top', 'align': 'center'} 
     } 
 }; 
 wp_button_pointer_array[2] = { 
     'element' : 'some-element-id', 
     'options' : { 
         'content': 'The HTML content to show inside the pointer', 
         'position': {'edge': 'top', 'align': 'center'} 
     }
};

3 个答案:

答案 0 :(得分:1)

我不确定我理解你的问题,但这是你正在尝试做的事情吗?

function findElementIdByName(arr, name) {
  for (var i = 0; i < arr.length; i++)
    if (arr[i].element == name)
      return i;
  return -1; //not found
}

//example call with your data
var eleId = findElementIdByName(wp_button_pointer_array, 'some-element-id');

旁注:javascript中的数组索引从0开始,你可以使用new Array(),但由于javascript解释器中的词法解析,[]稍微快一些(平均comp大约80ms)

答案 1 :(得分:0)

var wp_button_pointer_array = [
    {
        'element' : 'wp-button-pointer',
        'options' : {
            'content': 'The HTML content to show inside the pointer',
            'position': {'edge': 'top', 'align': 'center'}
        }
    },
    {
        'element' : 'some-element-id',
        'options' : {
            'content': 'The HTML content to show inside the pointer',
            'position': {'edge': 'top', 'align': 'center'}
        }

    }
];


$('a').on('click', function(){
    var clickedId = $(this).attr("id");
    for(var i = 0; i < wp_button_pointer_array.length; i++ ) {
        if(wp_button_pointer_array[i].element === clickedId) {
            //do staff with wp_button_pointer_array[i]
        }
    }
});

答案 2 :(得分:0)

这将返回包含给定element属性的索引。

function getIndexByElementId(elementArray, elementId) {
    var i, len;
    for(i = 0, len = elementArray.length; i < len; i++) {
        if(elementArray[i].element === elementId) {
            return i;
        }
    }
}