如果它匹配数组中的任何内容,我试图在sharepoint上突出显示我的表行,为什么它不起作用?

时间:2018-01-17 09:04:48

标签: javascript sharepoint

我有一个关于Sharepoint和数组的表,我试图比较它们并突出显示那些匹配但它不起作用的表。请帮忙!以下代码在Javascript中编码。我已经尝试了各种方法并根据我在网络上的调查结果进行相应的调整,但似乎没有什么能够解决这个问题。

    //gets table
var oTable = document.getElementById('tablename');

//gets rows of table
var rowLength = oTable.rows.length;

//loops through rows    
for (i = 0; i < rowLength; i++){

  //gets cells of current row  
   var oCells = oTable.rows.item(i).cells;

   //gets amount of cells of current row
   var cellLength = oCells.length;

   //loops through each cell in current row
   for(var j = 0; j < cellLength; j++){

        // get your cell info here

        var cellVal = oCells.item(j).innerHTML;
        console.log(cellVal);

        var serverRelativeUrlOfMyFile = "https://Sharepointsite/Blacklist.txt";
        $.ajax({
            url: serverRelativeUrlOfMyFile,
            type: "GET"
        }).done(handler);
        function handler(data){
            //console.log(data);
            var lines = data.split('\n');
            for(var line = 0; line < lines.length; line++)
            {
                if (cellVal.includes(lines[line])){
                    oCells.item[j].style.background = "red";
                }
            }
        }
    }
}

以下是另一种尝试将我的表与Sharepoint匹配的方法。它部分工作 - 当我正确地运行数组时,只有数组中的最后一项匹配。我真的不懂,所以感谢那些可以提供帮助的人!非常感谢。

(附加信息!) 我通过使用带有executeQueryAsync函数的Javascript生成一个表来在Sharepoint上创建一个表来从Sharepoint列表中检索数据,然后将其作为可查看的HTML表生成。

        var serverRelativeUrlOfMyFile = "https://Sharepointsite/SoftwaresBlacklist.txt";
$.ajax({
url: serverRelativeUrlOfMyFile,
type: "GET"
}).done(handler);
function handler(data){
//console.log(data);
var lines = data.split('\n');
    for(var line = 0; line < lines.length; line++){
        //var templines = lines;
        //alert(lines[line]);

        $("#tablename tr:contains('" + lines[line] + "')").css("background-color", "red");
    }
}

2 个答案:

答案 0 :(得分:0)

我最近遇到过类似的事情。当引用AJAX函数之外的对象时,它归结为“范围”问题。

尝试这样的事情:(名为“theCells”的新属性以及以“this.theCells”开头的行。)

    $.ajax({
        url: serverRelativeUrlOfMyFile,
        theCells: oCells,
        type: "GET"
    }).done(handler);
    function handler(data){
        //console.log(data);
        var lines = data.split('\n');
        for(var line = 0; line < lines.length; line++)
        {
            if (cellVal.includes(lines[line])){
                //oCells.item[j].style.background = "red";
                this.theCells.item(j).style.background = "red";
            }
        }
    }

答案 1 :(得分:0)

另一个注意事项&#34; item&#34;是一种方法,所以应该使用(),而不是[]。

this.theCells.item[j].style.background = "red";

this.theCells.item(j).style.background = "red";