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 页面的代码生成一个字符串变量。在这个变量中,我找到了标签,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 回答