Создать приложение, получив идентификатор

Поэтому я пытаюсь сделать так, чтобы при нажатии

<a class="tab" id="NAME">NAME</a>

в id=gamecontent это создаст это

<div id="NAME" class="tabcontent">
<h3>NAME</h3>
<embed src="games/NAME.swf" align="middle" height="570px" width="100%"/>
</div>

и это то, что я придумал

$('.tab').click(function() {
var x = $(this).getAttribute('id');
$('#gamecontent').append('<div id="' + x + '" class="tabcontent"><h3>' + x + '</h3><embed src="games/' + x + '.swf" align="middle" height="480px" display="block" width="100%"/></div>');
});

это казалось достаточно простым, но что-то где-то делает это просто не работает вообще

1 ответ

Решение

Как говорится в комментарии, вы использовали неправильный метод, чтобы получить id приписывать. Исправив эту ошибку, я показываю альтернативу для создания элементов с помощью JQuery вместо использования полного определения строки:

$('.tab').click(function()
{
    var x = $(this).attr('id');
    
    var div = $("<div>", {
        id: x,
        class: "tabcontent"
    });

    var h3 = $("<h3>").text(x);
    
    var embed = $("<embed>", {
        src: "games/" + x + ".swf",
        align: "middle",
        height: "480px",
        width: "100%",
        display: "block"
    });

    div.append([h3,embed]);
    $("#gamecontent").append(div);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<a class="tab" id="NAME">NAME</a>
<hr>
<div id="gamecontent"></div>

Вы можете проверить с помощью инструмента инспектора формат добавленного содержимого, после того как вы нажали...

Другие вопросы по тегам