2014-04-06 90 views
0
<div id='xlink'>mc</div> 

JS其文本查找元素索引

$('#next').click(function() { 
var xlink = $('#xlink').html(); 

var links = [ 'qd', 'mc', 'vr', 'lm', 'ms', 'kl', 'yu', 'an' ]; 

foreach(links, element) { 
    if (element.value==xlink){y = element.index}; 
     alert (y); 

}); 

我需要什么:在links阵列

的foreach元素,如果元素的值等于xlink value然后y = index of that element。在这种情况下应该是1

+0

[JQuery的获取当前数组索引位置](HTTP的可能重复:// stackoverflow.com/questions/12120852/jquery-get-current-array-index-position) – undefined

回答

2

获取元素文本要使用的密钥,并用的indexOf,或使用jQuery的$.inArray更多的跨浏览器的阵列中查找它,它会返回指数

$('#next').on('click', function() { 
    var links = [ 'qd', 'mc', 'vr', 'lm', 'ms', 'kl', 'yu', 'an' ]; 
    var key = $.trim($('#xlink').text()); 
    var y  = $.inArray(key, links); 

    alert(y); 
}); 

FIDDLE

1

您可以使用links.foreach

$('#next').click(function() { 
    var xlink = $('#xlink').html(); 

    var links = [ 'qd', 'mc', 'vr', 'lm', 'ms', 'kl', 'yu', 'an' ]; 

    links.forEach(function(value,index) { 
      if (value==xlink){ 
      y =index 
      alert (y); 
      } 
     }); 
    }); 

小提琴遍历通过链路数组:http://jsfiddle.net/v2334/

1

不需要在事件监听

声明此数组
var links = [ 'qd', 'mc', 'vr', 'lm', 'ms', 'kl', 'yu', 'an' ]; 
document.getElementById('next').addEventListener('click', function(){ 
    var i = links.indexOf(
    document.getElementById('xlink').innerText.replace(/^\s+|\s+$/g, '') 
); 
    alert(i); 
}) 

就像vanillaJS)

fiddle