使用“each”元素使用JQuery过滤表

时间:2016-01-18 15:20:42

标签: javascript jquery html

好的,大家好,我希望你能帮助我。使用JQuery的←[1;34mblue←[1;m选择器时,我遇到了JQuery或更好的问题。

我有一个示例表,我想要过滤我之前输入的特殊值。我从输入字段获取的值,将它们存储在变量中,拆分数据并创建一个JQuery对象。 好吧,然后我认为我的选择有问题,在代码部分标记。

each

<p>
    <input id="testyear" size="4" type="text">
    <input value="Werte" onclick="getvalue()" type="button">
</p>
<script>
    function getvalue() {
        var wert = $('#testyear').val();
        $("#years").find("tr").hide();
        var data = this.value.split(" ");
        // create jQuery Object
        var jQueryObject = $("#years").find("tr");
        // i think here is my error, i want to display only the object which are equal or better stored in my variable “wert”.
        $.each(data, function (){
            //jQueryObject = jQueryObject.filter(wert);
            jQueryObject == wert;

    });
    jQueryObject.show();
};

我希望,当我在inpt字段中输入1997时,将显示包含1997的整个tr。我知道这很简单,但我不知道,谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

在最初隐藏所有内容后,在TR上使用filter

e.g。

 getvalue = function() {
  var wert = $('#testyear').val();
  // create jQuery Object
  $("#years tr").hide().filter(function() {
    return ~~$("td", this).first().text() >= wert;
  }).show();
};

JSFiddle: https://jsfiddle.net/TrueBlueAussie/h8Lejfac/

说明:

  • ~~稍微转换为整数提示
  • 您似乎在示例
  • 中有额外的代码
  • 只需让filter为您要保留的每件商品返回true,然后为其他商品返回false
  • 使用jQuery时,请避免使用内联事件处理程序(如onclick=)。请改用jQuery事件处理程序。见下文:

e.g。

$('#wert').click(function() {
  var wert = $('#testyear').val();
  // create jQuery Object
  $("#years tr").hide().filter(function() {
    return ~~$("td", this).first().text() >= wert;
  }).show();
});

JSFiddle: https://jsfiddle.net/TrueBlueAussie/h8Lejfac/1/

答案 1 :(得分:0)

我认为您的问题不在each()方法(而非选择器)中。你的问题在这里:

   var data = this.value.split(" ");

this未定义(您不在对象范围内)。我想你需要这个:

   var data = wert.split(" ");
   -----------^^^^

您已在最后一行获得wert的值。