javascript - 如何在 JQuery 中设置当前 <li> 选项卡

标签 javascript jquery html

所以,最初我有这个 html 代码,我试图实现 <li>将动态添加到 <ul>

<ul class="tabs" id="modal_addquestion_ul">
    <li class="tab-link current" data-tab="multipleChoice">Multiple Choice</li>
    <li class="tab-link" data-tab="trueOrFalse">True or False</li>
    <li class="tab-link" data-tab="fillInTheBox">Fill in the Box</li>
</ul>

当前选项卡设置为多项选择。

现在,我在 JQuery 中创建了一个方法来动态添加 <li><ul> 数据来 self 创建的数据库。

function loadQuestionTypesToULTab(ULId){
    $.ajax({
        url: 'controller/get_all_question_types.php',
        type: 'POST',
        dataType: 'json',
        success: function (questionTypeData) {
            console.log(questionTypeData);
            var len = questionTypeData.length;
            clearListItemsOf(ULId);
            for (var i = 0; i < len; i++) {
                var questionTypeId = questionTypeData[i]['questionTypeId'];
                var questionType = questionTypeData[i]['questionType'];
                var listItem = $('<li></li>').val(questionTypeId)
                                .text(questionType).addClass('tab-link').attr('data-tab',questionType);
                $(ULId).append(listItem);
                //$(ULId).append("<li class='tab-link'+' current' value='" + questionTypeId + "' >"    + questionType +    "</li>" );
            }
        },
        error: function (x, e) {
            handleError(x, e);
        }
    });
}

当我使用 Google Chrome 的检查器查看 JQuery 方法是否准确翻译了上面原始 html 的编写方式时,它几乎正确除了它未设置 多项选择作为当前 <li>或选项卡。

<li> 时谷歌浏览器检查器中的输出的被检查:

<li value="1" class="tab-link" data-tab="Multiple Choice">Multiple Choice</li>
<li value="2" class="tab-link" data-tab="Fill in the Box">Fill in the Box</li>
<li value="3" class="tab-link" data-tab="True or False">True or False</li>

我需要在我的 JQuery 代码中添加什么才能生成,

多项选择

注意类值是tab-link current

我试过了 .addClass('tab-link current');但只需要 tab-link并在 html 中删除 current

如,

<li value="1" class="tab-link" data-tab="Multiple Choice">Multiple Choice</li>

没有 current 作为名称类的一部分。

谢谢。

最佳答案

正如您所说,您确实还需要专门添加不在您的主代码示例中的类“current”。

您说您尝试了 addClass('tab-link current') 但我们无法在您的整个代码的上下文中看到它。您有一条注释掉的行,但它本身没有意义,因为它适用于所有项目并且似乎来自您代码的早期迭代。

您的代码如何知道哪个项目应该获得当前类(如果有)?也许尝试这样的事情(在这种情况下将第一项设置为当前):

success: function (questionTypeData) {
        var len = questionTypeData.length;
        clearListItemsOf(ULId);
        for (var i = 0; i < len; i++) {
            var questionTypeId = questionTypeData[i]['questionTypeId'];
            var questionType = questionTypeData[i]['questionType'];
            var listItem = $('<li></li>').val(questionTypeId)
                            .text(questionType).addClass('tab-link').attr('data-tab',questionType);
            if ( i == 0 ){
                listItem.addClass( 'current' );
            }
            $(ULId).append(listItem);
        }
    },

关于javascript - 如何在 JQuery 中设置当前 <li> 选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54060922/

相关文章:

javascript - 使元素可点击的 Angular Directive(指令)?

javascript - 插入一个变量作为组件模板的内联样式参数?

javascript - javascript函数运行时将光标更改为等待符号

javascript - 在每个月初重置计数器

javascript - 表单的 get 方法与 Angular $http.get 请求

javascript - 如何编写 JavaScript 函数从 HTML 5 视频播放器获取位图数据?

php - 什么时候用node.js,什么时候用ajax?

javascript - jquery - 通过 POST (ajax) 发送 JSON 数据并在 php 中检索

javascript - 使用 jQuery Mobile 在子页面上包含脚本?

python - 为什么我的 ajax 代码不能使用 Python Flask 运行?