在使用jQuery追加到列表之前检查div是否重复

ehThind

这应该是微不足道的,但我遇到了问题...

基本上,我想做的是当用户单击“课程”时将新的“ div”添加到“所选课程”。仅当当前课程尚未在“所选课程”框中时,才应该发生这种情况。

我遇到的问题是执行此操作时,“选择的课程”部分没有任何内容。我已使用警报语句来确保代码实际上正在运行。我对.on和。每种工作方式的理解有什么问题吗?我可以这样使用它们吗

这是一个小提琴http://jsfiddle.net/jq9dth4j/

$(document).on("click", "div.course", function() {
    var title = $( this ).find("span").text();
    var match_found = 0;

    //if length 0 nothing in list, no need to check for a match     
    if ($(".selected-course").length > 0) {
        match_found = match(title);
    }
    if (matched == 0) {
        var out = '<div class="selected-course">' + '<a href="#">' + title + '</a>'+'</div>';
        $("#selected-box").append(out); 
    }       
});

//checks to see if clicked course is already in list before adding.
function match(str) {
    $(".selected-course").each(function() {
        var retval = 0;
        if(str == this.text()) {
            //course already in selected-course section
            retval = 1;
            return false;
        }
    });
    return retval;
}
不同的

依靠检查文本元素包含的内容并不是解决此类问题的最佳方法。它很容易出错(如您所知),它可能很慢,给您的代码很长,并且对HTML中的细微变化很敏感。我建议改用自定义data-*属性。

因此,您将获得如下所示的HTML:

<div class="course" data-course="Kite Flying 101"> 
    <a href="#">
        <span>Kite Flying 101</span> 
    </a>
</div>

然后,JS会像这样简单:

$(document).on('click', 'div.course', function() {
    // Get the name of the course that was clicked from the attribute.
    var title = $(this).attr('data-course');
    // Create a selector that selects everything with class selected-course and the right data-course attribute.
    var selector = '.selected-course[data-course="' + title + '"]';
    if($(selector).length == 0) {
        // If the selector didn't return anything, append the div.
        // Do note that we need to add the data-course attribute here.
        var out = '<div class="selected-course" data-course="' + title + '"><a href="#">' + title + '</a></div>';
        $('#selected-box').append(out);    
    }
});

但是,请注意课程名称中的区分大小写!

是一个工作的小提琴。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

访问div中的元素并使用jQuery追加到列表中

来自分类Dev

使用jQuery在与div进行新聊天之前,先将旧聊天追加到

来自分类Dev

追加到列表时值重复

来自分类Dev

jQuery:追加到元素之前

来自分类Dev

使用jQuery将数据追加到div

来自分类Dev

在将对象添加到列表之前,如何使用LINQ语句检查现有列表中的任何对象是否已存在变量?

来自分类Dev

如何检查具有特定值的 div 是否重复,然后在 jQuery 中隐藏重复的 div

来自分类Dev

在继续之前检查文件列表是否存在?

来自分类Dev

在添加新列表之前,使用Contains()检查列表中是否存在多个对象值?

来自分类Dev

Python检查变量是否在列表中重复

来自分类Dev

谓词,检查列表是否包含重复项

来自分类Dev

jQuery 函数检查值是否与之前相同

来自分类Dev

在尝试使用JQuery删除类之前,是否应该检查类是否存在?

来自分类Dev

向ModelViewSet请求列表,并在插入之前检查重复项

来自分类Dev

使用jQuery遍历包含img URL的数组并追加到div

来自分类Dev

在插入集合之前是否应该检查重复项

来自分类Dev

使用jQuery检查滚动条是否达到了div

来自分类Dev

使用jQuery检查div是否在视口内可见

来自分类Dev

遍历Div并使用jquery检查check子元素是否

来自分类Dev

检查是否使用JavaScript滚动到div上方(无jQuery)

来自分类Dev

遍历Div并使用jquery检查check子元素是否

来自分类Dev

检查是否使用JavaScript滚动到div上方(无jQuery)

来自分类Dev

使用sort -u将单词追加到单词列表中-避免重复

来自分类Dev

使用Haskell(++)运算符追加到列表是否会导致多次遍历列表?

来自分类Dev

在使用jQuery选择之前,我应该检查对象是否存在吗?

来自分类Dev

在将图片附加到div之前使用jQuery调整图片大小

来自分类Dev

仅在使用jquery检查之后才在div之前添加元素

来自分类Dev

在使用Angular将项目添加到数组之前,如何检查项目是否已在数组中?

来自分类Dev

在分配列表之前检查queryable是否为null

Related 相关文章

  1. 1

    访问div中的元素并使用jQuery追加到列表中

  2. 2

    使用jQuery在与div进行新聊天之前,先将旧聊天追加到

  3. 3

    追加到列表时值重复

  4. 4

    jQuery:追加到元素之前

  5. 5

    使用jQuery将数据追加到div

  6. 6

    在将对象添加到列表之前,如何使用LINQ语句检查现有列表中的任何对象是否已存在变量?

  7. 7

    如何检查具有特定值的 div 是否重复,然后在 jQuery 中隐藏重复的 div

  8. 8

    在继续之前检查文件列表是否存在?

  9. 9

    在添加新列表之前,使用Contains()检查列表中是否存在多个对象值?

  10. 10

    Python检查变量是否在列表中重复

  11. 11

    谓词,检查列表是否包含重复项

  12. 12

    jQuery 函数检查值是否与之前相同

  13. 13

    在尝试使用JQuery删除类之前,是否应该检查类是否存在?

  14. 14

    向ModelViewSet请求列表,并在插入之前检查重复项

  15. 15

    使用jQuery遍历包含img URL的数组并追加到div

  16. 16

    在插入集合之前是否应该检查重复项

  17. 17

    使用jQuery检查滚动条是否达到了div

  18. 18

    使用jQuery检查div是否在视口内可见

  19. 19

    遍历Div并使用jquery检查check子元素是否

  20. 20

    检查是否使用JavaScript滚动到div上方(无jQuery)

  21. 21

    遍历Div并使用jquery检查check子元素是否

  22. 22

    检查是否使用JavaScript滚动到div上方(无jQuery)

  23. 23

    使用sort -u将单词追加到单词列表中-避免重复

  24. 24

    使用Haskell(++)运算符追加到列表是否会导致多次遍历列表?

  25. 25

    在使用jQuery选择之前,我应该检查对象是否存在吗?

  26. 26

    在将图片附加到div之前使用jQuery调整图片大小

  27. 27

    仅在使用jquery检查之后才在div之前添加元素

  28. 28

    在使用Angular将项目添加到数组之前,如何检查项目是否已在数组中?

  29. 29

    在分配列表之前检查queryable是否为null

热门标签

归档