Javascript data()的值将被忽略

Javascript data()的值将被忽略,javascript,jquery,Javascript,Jquery,我有一份文章清单。我使用jquery在客户机上过滤列表 下面的函数工作得非常好,唯一的部分是,data()将被忽略。searchgewerk的默认值为0,或者获取了列表中存在的另一个值 function filterArticlelist( searchterm, searchgewerk ) { if(searchterm.length > 1) { if( searchgewerk == 0 ) { var match =

我有一份文章清单。我使用jquery在客户机上过滤列表

下面的函数工作得非常好,唯一的部分是,data()将被忽略。searchgewerk的默认值为0,或者获取了列表中存在的另一个值

function filterArticlelist( searchterm, searchgewerk )
{
    if(searchterm.length > 1) {
        if( searchgewerk == 0 )
        {
            var match = $( 'tr.data-row:contains("' + searchterm + '")' );
            var nomatch = $( 'tr.data-row:not(:contains("' + searchterm + '"))' );

        }
        else
        {
//When searchgewerk is not 0 then i reach this else part. With console.log() the correct searchgewerk value would be logged.
            var match = $( 'tr.data-row:contains("' + searchterm + '")').data( "gewerk",searchgewerk );
            var nomatch = $( 'tr.data-row:not(:contains("' + searchterm + '"))' ).data( "gewerk",searchgewerk );
        }

        match
            .addClass( 'selected' )
            .css( "display", "" );

        nomatch
            .css( "display", "none");
    }
    else
    {
        $('tr.data-row').css("display", "");
        $('tr.data-row').removeClass('selected');

    }
}
我的错误在哪里?也许我是用一种扭曲的方式思考的?我也尝试过hasData(),但它也不起作用

谢谢你的帮助

这是每个tr的视图,其带有细枝的构建:

{% for data in ObjektArtikel %}
                    {% if loop.index0 is not even %}
                        {% set background = "trAvailableArticleBackground" %}
                    {% else %}
                        {% set background = "trAvailableArticleNoneBackground" %}
                    {% endif %}
                    <tr class="data-row trAvailableArticle {{ background }}" id="{{ data.artikelnummer }}" data-gewerk="{{ data.su_gewerk }}">
                        <td class="tdArticleNumber">
                            {{ data.artikelnummer }} - {{ data.su_gewerk }}
                        </td>
                        <td class="tdArticle">{{ data.artikel }}</td>
                        <td class="tdArticleDescription">{{ data.beschreibung }}</td>
                        <td class="tdArticleEinheit">{{ data.einheit }}</td>
                        <td><img class="addArticle" src="/bundles/mbsallgemein/images/add.png"></td>
                    </tr>
                {% endfor %}
{%用于对象中的数据%}
{%if loop.index0不是偶数%}
{%set background=“trAvailableArticleBackground”%}
{%else%}
{%set background=“trAvailableArticleNoneBackground”%}
{%endif%}
{{data.artikelnummer}}-{{data.su_gewerk}}
{{data.artikel}}
{{data.beschreibung}}
{{data.einheit}
{%endfor%}

如果您试图在
数据gewerk
属性上进行筛选,您可能会查找以下内容:

$('tr.data-row[data-gewerk="' + searchgewerk + '"]:contains("' + searchterm + '")')
这:


是一个setter,它不过滤任何东西。

你怎么知道
.data()
部分被忽略了?因为匹配的列表与searchgewerk==0部分中的列表是一样的。是的,在这两种情况下,你都使用了相同的选择器。您希望
.data()
调用做什么,以某种方式过滤结果?当searchgewerk==0时,它应该搜索包含searchterm的所有TR。当searchgewerk不是0时,它应该查看包含searchterm和TR数据gewerk==searchgewerkmy fault的所有TR。谢谢
.data(key, value)