2013-06-16 2 views
1

Сейчас у меня есть функция, которая выглядит следующим образом:Скрытие массива Javascript с JQuery

function hidearray() { 
    $('#one, #two, #three').hide(); 
} 

Я хотел бы поставить эти идентификаторы в 1 массив, который будет выглядеть

var myArray['one', 'two', 'three']; 

А затем спрячьте этот массив в моей функции hidearray(). Я думал, что это будет выглядеть, но я предполагаю, что я нахожусь на неправильном пути (я также знаю, что я игнорировал # в приведенном ниже заявлении)

$(.each(myArray)).hide(); 

решение, скорее всего, просто, так что спасибо всем, что отвечать!

ответ

6

JQuery селекторы просто строки, таким образом, создать строку, вступив в массив:

$('#' + myArray.join(', #')).hide(); 

FIDDLE

+0

+1 Я думаю, что '.join' это самый простой способ подойти к этому. –

+0

Спасибо всем за такой быстрый порыв комментариев! Это было самое короткое решение. – Paul

3

Я бы использовал getElementById. Предполагая, что поддержка Array.map:

var myArray = ['one', 'two', 'three']; 

$(myArray.map(document.getElementById, document)).hide(); 
1
for(var i = 0; i < myArray.length; i++) { 
    $(myArray[i]).hide(); 
} 
0

jsFiddle Demo

Использование each, передать массив в качестве первого параметра, а второй будет обратный вызов для работы с текущим элементом

var arr = []; 
arr.push("#one"); 
arr.push("#two"); 
arr.push("#three"); 
$.each(arr,function(){ 
$(""+this).hide(); 
}); 
+0

'" "+ this'? Зачем? – Ryan

+3

@minitech - Очень важно, чтобы строки были строками. – adeneo

+0

@minitech - потому что в противном случае он не обрабатывается как строка. –

0

скрыть массив ??. Полагаю, вы имеете в виду. Как скрыть элемент, поставив свой идентификатор внутри массива с помощью jquery

вы могли бы это сделать.

array = ['#id_tiempo_inicio_0', '#id_tiempo_fin_0', '#id_evento'] 

$.each(array,function(i, v){ 
    $(v).hide(); 
}); 
-1

Это будет делать трюк,

HTML

<div id="one">One</div> 
<div id="two">Two</div> 
<div id="three">Three</div> 
<button id="button">Hide</button> 

Javascript

jQuery(document).ready(function() { 
    var mrHide = ['#one', "#two", "#three"]; 
    jQuery("button#button").click(function() { 
     jQuery.each(mrHide, function(index, value) { 
      jQuery(value).hide(); 
     }); 
    }); 
}); 

http://jsfiddle.net/maxja/LUf4y/2/

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