2013-11-07 7 views
1

Я пытаюсь установить ссылку на страницу «все включено» с разных страниц. Ответы содержатся в тегах, вложенных в позицию неупорядоченного списка, размещенного по категориям.показать скрытый тег div с другой страницы

Справку страница имеет следующие категории:

  1. Практическая медсестра экзамена
  2. Интернет Возобновление
  3. Практика Часы

т.д.

Под Practical Nurse экзамен, Есть подкатегории, темы, с вопросами ниже в тегах, которые расширяют onClick. (например, день экзамена, результаты экзамена и т. д.)

Предположим, что я на другой странице под названием «Регистрация», и есть ссылка на часто задаваемые вопросы для результатов экзамена.

Я могу ссылаться на страницу и включать хэштаг на якорь или результаты экзамена, но не расширяет подкатегорию.

Я прочитал this, но это не сработало для меня. Пожалуйста помоги! Код ниже:

<script type="text/javascript"> 
    function toggle(Info,pic) { 
     var CState = document.getElementById(Info); 
     CState.style.display = (CState.style.display != 'block') ? 'block' : 'none'; 
    } 

    window.onload = function() { 
     var hash = window.location.hash; // would be "#div1" or something 
     if(hash != "") { 
      var id = hash.substr(1); // get rid of # 
      document.getElementById(id).style.display = 'block'; 
     } 
    } 

    </script> 

<style type="text/css"> 
.FAQ { cursor:hand; cursor:pointer; } 
.FAA { display:none; 
     padding-left:20px; 
     text-indent:-20px; } 
#FAQlist li { list-style-type: none; } 
#FAQlist ul { margin-left:0px; } 
headingOne{ font-family:Arial, Helvetica, sans-serif; color:#66BBFF; font-size:20px; font-weight:bold;} 

</style> 

Вот тело (часть его так или иначе)

<headingOne class="FAQ" onClick="toggle('CPNRE', this)">PRACTICAL NURSE EXAM</headingOne> 
<div class="FAA" id="CPNRE"> 
<h3><a name="applying">Applying to write the CPNRE</a></h3> 
<ul id="FAQlist" style="width:450px;"> 
    <li class="FAQ"> 
     <p onclick="toggle('faq1',this)"> 
      <strong>Q: How much does it cost to write the exam?</strong></p> 
     <div class="FAA" id="faq1"> 
     <b>A.</b> In 2013, the cost for the first exam writing is $600.00 which includes the interim license fee. See <a href="https://www.clpnbc.org/What-is-an-LPN/Becoming-an-LPN/Canadian-Practical-Nurse-Registration-Examination/Fees-and-Deadlines.aspx"> fee schedule</a>.</div> 
     <hr /> 
    </li> 

и вот тело другой страницы, содержащей ссылку и тот же синтаксис сценария как все включено Часто задаваемые вопросы. Это просто тест, это не совсем то, что он будет говорить:

<a onclick="toggle('CPNRE', this)" href="file:///S|/Designs/Web stuff/FAQ all inclusive.html#applying"> click here</a> 
+0

Если ссылка переведена на другую страницу, добавив * на * вашу страницу часто задаваемых вопросов, вам не нужно использовать onlick be потому что переключатель переключается, когда загружается страница часто задаваемых вопросов. –

+0

@Diodeus Привет! Благодарим за комментирование. Значит, вы имеете в виду, что мне не нужен onclick на другой странице, но просто нужен href, правильно? – neueweblernen

ответ

1

Если ДИВ вы пытаетесь расширить это в других дивы, которые разрушились, вам придется расширить контейнер дивы до расширения дети дивы чтобы показать их. Так что вам нужно, по крайней мере, назвать что-то вроде функции переключения в коде головки, например

window.onload = function() { 
     var hash = window.location.hash; // would be "#div1" or something 
     if(hash != "") { 
      toggle('CPNRE', this);/*this is an example the CPNRE value needs to be figured out*/ 
      var id = hash.substr(1); // get rid of # 
      document.getElementById(id).style.display = 'block'; 
     } 
    } 

Это примерно идея не является полным решением, так как вам необходимо выяснить контейнер DIV вызвать переключение или другая функция для его расширения.

EDIT

Одним из способов достижения того, что вы пытаетесь сделать, в чистом JS, будет делать следующее,

if(hash != "") { 
    var id = hash.substr(1); // get rid of # 
    document.getElementById(id).style.display = 'block'; 
    document.getElementById(id).parentNode.parentNode.parentNode.style.display = 'block'; 

    document.getElementById(id).parentNode.parentNode.style.display = 'block'; 

    document.getElementById(id).parentNode.style.display = 'block'; 

    document.getElementById(id).style.display='block'; 
} 

Но это связано с конкретной планировкой у вас есть в вашем вопросе.

А лучше, более общий характер, решение было бы итерацию родителей, пока конкретный родитель не найден на основе значения класса, например

HTML

/*add class value like faq-section to each div section */ 
<div class="FAA faq-section" id="faq1"> 

JS

.... 
if(hash != "") { 
    var id= hash.substr(1); 
    var pNode = document.getElementById(id).parentNode; 
    var endLoop=false; 
    while(!endLoop){ 
    if(pNode.className&&pNode.className.indexOf('faq-section')!=-1){ 
     endLoop=true; 
    }; 
    pNode.style.display='block'; 
    pNode=pNode.parentNode; 
    } 
    document.getElementById(id).style.display='block'; 
} 
+0

Большое спасибо за ответ! Я действительно схожу с ума (у меня не так много знаний. Я должен был уделять внимание классу). приведенная выше информация CPNRE - это один заголовок. Должен ли я оставить его пустым, чтобы он мог заполнять и другие заголовки? (Я выясню более низкие уровни позже. Я был бы достаточно доволен, если бы он мог, по крайней мере, переключать каждый раздел. Прямо сейчас он может делать только первый, который является «CPNRE». Еще раз спасибо для ответа :) – neueweblernen

+0

Я взял это, потому что я не думаю, что мне это нужно: 'code' var id = hash.substr (1); 'code' Я думаю, что переключение 'code' ('CPNRE', this) 'code' должно измениться. Я смог расширить один заголовок за раз, изменив «Информация», но я не уверен, как я могу сделать так, чтобы он принял переменную. Я попытался оставить его пустым, попробовал '', и CState, но ничего. Извините, я такой нуб. :( – neueweblernen

+0

@neueweblernen обновил ответ с возможным решением, надеюсь, что это поможет. – melc

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