Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Обращение к id тега через value другого тега (https://javascript.ru/forum/events/60686-obrashhenie-k-id-tega-cherez-value-drugogo-tega.html)

WaldeMar1321 14.01.2016 13:52

Обращение к id тега через value другого тега
 
Здравствуйте, есть разметка:
<p id="maind">Some text</p>
<p id="maint">Some another text</p>

<textarea id="comment" cols="30" rows="10"></textarea>
<select name="" id="sel1">
   <option value="maind">Общая информация</option>
   <option value="maint">Главные задачи</option>
</select>
<a href="javasript:Acct();">Опубликовать</a>

и код:
function Acct()
{
   var nT = document.getElementById("comment");
   var tT = document.getElementById("sel1").value;
   var tO = document.getElementById(tT).innerHTML;
   console.log(tT);//показывает выбранное выше значение, допустим "maind"
   document.getElementById(tT).innerHTML + tO + nT.value;
}//Этот код не работает

Однако, я могу реализовать подобное другим путем, он мне не очень нравится
<option value="1">Общая информация</option>
<option value="2">Главные задачи</option>

а в коде:
//...
switch(tT)//элементов много, if не подходит
{
   case "1": document.getElementById("maind").innerHTML + tO +    nT.value;break;
   case "2": document.getElementById("maint").innerHTML + tO + nT.value;break;
}//Это решение работает но оно слишком громоздкое

Есть у кого нибудь идеи как заставить работать первый вариант?
Заранее спасибо!

рони 14.01.2016 15:19

WaldeMar1321,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<p class="text">Some text</p>
<p class="text">Some another text</p>

<textarea id="comment" cols="30" rows="10"></textarea>
<select name="" id="sel1">
   <option value="0">Общая информация</option>
   <option value="1">Главные задачи</option>
</select>
<a href="#" class="go">Опубликовать</a>

<script>
window.addEventListener("DOMContentLoaded", function() {
    var b = document.querySelector("#sel1"),
        a = document.querySelector(".go"),
        d = document.querySelector("#comment"),
        c = document.querySelectorAll(".text");
    a.addEventListener("click", function(a) {
        a.preventDefault();
        c[+b.value].innerHTML += d.value
    })
});
</script>
</body>

</html>

Dilettante_Pro 14.01.2016 16:56

WaldeMar1321,
первый вариант работает при
<a href="#" onclick="Acct();">Опубликовать</a>

и
document.getElementById(tT).innerHTML = tO + nT.value;

или
document.getElementById(tT).innerHTML += nT.value;


Часовой пояс GMT +3, время: 13:23.