19

重複の可能性:
要素が HTML ページ全体に存在するかどうかを調べる

ID $('#ID') が jQuery に存在するかどうかを確認する方法はありますか

元:

$('#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 に答える