如何:$(this)ToUpperCase

时间:2018-02-28 10:00:01

标签: javascript jquery sharepoint

我没有专业人士,经过研究,我无法找到解决方案。 我有一个SharePoint列表的JavaScript源代码来实现有效的InstantListFilter(https://archive.codeplex.com/?p=instantlistfilter)!

但我想更新源代码,以便过滤器不区分大小写。我能够将过滤词(val)替换为大写(val = val.toUpperCase())。但我不知道如何将列表文本变为大写。

$("table.ms-listviewtable").children("tbody").each(function() {
  $(this).children("tr").each(function() {

    var mismatch = false;

    $(this).children("td").each(function(colIndex) {
      if (mismatch) return;

      if (filterValues[colIndex]) {
        var val = filterValues[colIndex];

        // replace double quote character with 2 instances of itself
        val = val.replace(/"/g, String.fromCharCode(34) + String.fromCharCode(34));

        val = val.toUpperCase(); //my adaption, working for the filter word
        $(this).val = $(this).val().toUpperCase(); //not working for the list-text

        // verifies the filter word.
        if ($(this).is(":not(:contains('" + val + "'))")) {
          mismatch = true;
        }
      }
    });

    if (mismatch) {
      $(this).hide();
    } else {
      $(this).show();
    }
  });

});

有人有解决方案吗? 对于简短的回复会很高兴!

2 个答案:

答案 0 :(得分:0)

您正在尝试的解决方案也会将输入值修改为大写,我不确定您是否想要这样做?也许您可以将输入值分配给var,看看它是否包含String.indexOf()

的文本
...
val = val.toUpperCase(); //my adaption, working for the filter word
var inputVal = $(this).val().toUpperCase();

// indexOf = -1 means that inputVal does not contain val
if (inputVal.indexOf(val) === -1) {
  mismatch = true;
}
...

答案 1 :(得分:0)

感谢回复!!!

我明白了:

var inputVal = $(this).text().toUpperCase();
//alert(inputVal);

// verifies the filter word.
// indexOf = -1 means that inputVal does not contain val
if (inputVal.indexOf(val.toUpperCase()) === -1) {
    mismatch = true;
}