0
$.get(url, function(data){
    $("<div>" + data + "</div>").find('.list [class^=data]').each(function(){
        if($(this).is("[class^=dataitem]")){
            //code for dataitem
        }
        else{
            //code for not dataitem
        }
    });
});

get 関数を使用して、URL ページのコードで strig 変数を生成します。この変数では、class=list を持つタグの子であるタグを見つけます。そのクラスは「data」で始まり、クラスが「dataItem」で始まる場合はこれらの各コントロールに対して、そうであればこれらのタグのコードを適用します。うまくいかないのはなぜですか?

4

2 に答える 2

2

これを試して :

$.get(url, function(data){
     var YourFindElement = $("<div>" + data + "</div>").find('.list [class^=data]');
       $.each(YourFindElement , function (i, rowValue) {
          if($(this).hasClass("dataitem")){
              //code for dataitem
          }
          else{
            //code for not dataitem
          }
       });
});
于 2013-04-03T13:42:04.833 に答える
1

短い答え。あなたの選択はオブジェクトを返さないからです。そして、これにはいくつかの理由が考えられます

コードを次のように変更できます

$.get(url, function(data){
    $("<div>" + data + "</div>").find('.list [class^="data"]').each(function(){
        if($(this).hasClass("dataitem")){
            //code for dataitem
        }
        else{
            //code for not dataitem
        }
    });
});

これにより、最初の問題が解消されます (属性値を qoutes でラップする必要があります)。ただし、より可能性の高い原因は、属性値を見ているため、 一致しclass="hover dataitem"ないのに一致class="dataitem hover"することです。そのため、次のように変更することをお勧めします

$.get(url, function(data){
    $("<div>" + data + "</div>").find('.list .data').each(function(){
        if($(this).hasClass("dataitem")){
            //code for dataitem
        }
        else{
            //code for not dataitem
        }
    });
});

data問題の要素にクラスを追加する必要があります。dataitem

于 2013-04-03T13:22:30.767 に答える