19

可能重复:
查找元素是否存在于整个 html 页面中

有什么方法可以检查 jQuery 中是否存在 ID $('#ID')

前任:

$('#cart').append('<li id="456">My Product</li>');

在运行 append() 到这样的事情之后,我想检查我的 ID $('#456') 是否存在。如果它退出我想更改文本,否则我想附加一个新的

  • .

    $(document).ready(function() {
            $('#RAM,#HDD').change(function() {
    
                var product = $(this).find("option:selected").attr("product");
    
                $.ajax({
                    url: 'ajax.php',
                    type: 'post',
                    data: $(this).serialize(),
                    dataType: 'json',
                    success: function(data) {
                        $('#cart').empty();
                        $.each(data, function(index, value) {
                            $('#cart').append('<li id="'+product+'">'+ value['price'] +'</li>');
                        });
                    }
                });
            });
        });
    
  • 4

    4 回答 4

    46
    if ($('#456').length)
    {
     /* it exists */
    }
    else
    {
     /* it doesn't exist */
    }
    
    于 2012-07-22T13:04:07.923 回答
    3

    您可以这样做来查看选择器是否存在:

    jQuery.fn.exists = function(){return this.length>0;}
    
    if ($(selector).exists()) {
        // Do something
    }
    
    于 2012-07-22T13:02:24.367 回答
    1
    function checkExists(sel) {
        var status = false;
        if ($(sel).length) status = true;
        return status;
    }
    

    工作样本

    于 2012-07-22T14:02:07.763 回答
    0

    呃,我不确定你为什么要这样做,但为了这样做,你需要稍微重新排列你的代码。

    success: function(data) {
        var cart = $('#cart');
        cart.empty();
        $.each(data, function(index, value) {
            cart.append('<li id="'+product+'">'+ value['price'] +'</li>');
        });
        if(cart.find('#456').length) {
            cart.find('#456').text('Whatever you would like');
        }
    }
    

    我“缓存”了您的购物车选择器以节省 DOM 查找。

    于 2012-07-22T13:00:34.467 回答