0

似たようなフィルター値が欲しいので、以下のjsコードのようにしてみましたが、このコードでは値をフィルターできませ111,。私のhtmlコードは次のとおりです(一部はこれを行い、一部はこれを行いません:) ,

すべての文字列をフィルター処理するためのjsコードを修正するにはどうすればよいですか?

デモ: http://jsfiddle.net/bNuRE/

HTML:

<div class="oo">111</div>
<div class="oo">111, 222, 333</div>
<div class="oo">444, 111</div>
<div class="oo">222, 333</div>
///////////////////////////////////////////////////////
<div class="ww">111</div>
<div class="ww">777</div>
<div class="ww">333</div>
<div class="ww">666</div>

JS:

var valeache = $('.oo').text().split(', ');
$.each(valeache, function (a, val) {
    $('.ww').filter(function () {
        return $(this).text() == val
    }).remove();
});
4

3 に答える 3

1

あなたの構造valeacheは間違っています。

.ooを正しく構築するには、各要素を反復処理する必要がありますvaleache

var valeache = $('.oo').map(function(){
    return $(this).text().split(', ');
}).get();
$.each(valeache, function (a, val) {
    $('.ww').filter(function () {
        return $(this).text().trim() == val;
    }).remove();
});
于 2013-02-18T18:40:21.543 に答える
0
var valeache = null;

$('.oo').text(function(i, text) {
    valeache += text.replace(/\s/g,'') + ',';
})
valeache = $.unique( valeache .replace(/,$/,'').split(',') );

$.each(valeache, function (a, val) {
    $('.ww').filter(function () {
        return $(this).text() == val
    }).remove();
});

デモ: http://jsfiddle.net/xfSK4/3/

于 2013-02-18T18:44:52.660 に答える
0

あなたが何をしようとしているのか、私には完全には明らかではありません。ソース リストのいずれかの要素の値 (場合によってはコンマ区切り) のいずれかに一致する値を持つ要素をターゲット リストから削除しようとしているだけですか? もしそうなら、もっと簡単にできると思います:

var vals = $.map($('.oo'), $.text).join(", ").split(", ");

$('.ww').filter(function () {
    return $.inArray($(this).text(), vals) > -1;
}).remove();

デモ: http://jsfiddle.net/CrossEye/MVGLQ/1/

その最初の配列には重複が含まれていますが、問題にはなりません。

于 2013-02-18T19:05:16.510 に答える