2015-11-05 2 views
1

У меня есть php-файл, который «включен» несколько раз, поэтому ничего там нет ID, однако только один из них когда-либо виден. Я хочу сделать div видимым внутри этого PHP в зависимости от того, что набирается, могу ли я сделать это, даже если у него нет идентификатора? включен PHP файл:показать div с javascript без ID

<script type="text/javascript"> 
    function mobilecheck(inputted) { 
     var findstring = "07"; 
     if (inputted.indexOf(findstring) > -1) { 
      //this works, I have tested with an 'alert' 
document.getElementsByName("hiddenMobileDiv").style.display="block"; 
//show hidden div - this bit isn't working, I think it's because there's multiple divs with this name 
      } 

    } 
</script> 

    <input type="tel" class="textbox" name="contactno" onkeypress="mobilecheck(this.value)"> 
    <div name="hiddenMobileDiv" style="display:none"> 
     <label class="label">What time can we contact you until?</label> 
    </div> 
+0

Когда вы говорите, «только одна видно», то это значит, что вы удаляете другие одни из DOM - или только установив их не показывать? Если они все еще существуют в DOM, должны быть дополнительные критерии, используемые для определения правильного отображения. Если они удалены, вы можете использовать ответ joe_young. –

ответ

0

document.getElementsByName возвращает массив, так что вам нужно будет использовать:

document.getElementsByName("hiddenMobileDiv")[0].style.display="block"; 

Добавление [0] ссылаться на первый элемент в массиве элементов с именем «hiddenMobileDiv»


Или, если у вас есть более чем один 'hiddenMobileDiv' элемента или вы хотите, чтобы показать их все, нам для цикла:

for (i=0; i<document.getElementsByName("hiddenMobileDiv").length; i++) 
    document.getElementsByName("hiddenMobileDiv")[i].style.display="block"; 
+0

Это будет работать, только если нужный div появится в DOM. Возможно, у него есть три divs с этим именем, но желаемый, чтобы показать, появляется в DOM третьим. Если это так, ваш код отобразит неверный div. –

+0

Работал для меня блестяще, большое спасибо – Maff

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