Javascript innrhtml.indexof(字段名)无法正常工作,只能读取字段名的4到5个字母 函数findacontrol(字段名){ var arr=document.getElementsByTagName(“!”); //获取所有评论 对于(变量i=0;i0) { 返回arr[i]; } } }

Javascript innrhtml.indexof(字段名)无法正常工作,只能读取字段名的4到5个字母 函数findacontrol(字段名){ var arr=document.getElementsByTagName(“!”); //获取所有评论 对于(变量i=0;i0) { 返回arr[i]; } } },javascript,html,search,tags,innerhtml,Javascript,Html,Search,Tags,Innerhtml,如果有两个cloumns DepartmentName和Department,并且如果我们尝试匹配Department列,则此函数返回DepartmentName而不是Department,它与完整的列名不匹配。有什么问题吗?这是因为indexOf在列名DepartmentName中找到单词Department,您应该使用=运算符来精确匹配这两个字符串: function findacontrol(FieldName) { var arr = document.getElementsByTag

如果有两个cloumns DepartmentName和Department,并且如果我们尝试匹配Department列,则此函数返回DepartmentName而不是Department,它与完整的列名不匹配。有什么问题吗?

这是因为
indexOf
在列名DepartmentName中找到单词Department,您应该使用
=
运算符来精确匹配这两个字符串:

function findacontrol(FieldName) {

var arr = document.getElementsByTagName("!");
// get all comments
for (var i=0;i < arr.length; i++ )
{
 // now match the field name
 if (arr[i].innerHTML.indexOf(FieldName) > 0)
  {         
   return arr[i];
  }
}
}
/*前导和尾随空格正则表达式*/
变量ls=/^\s*/;
变量ts=/\s*$/;
函数findControl(字段名){
//获取所有列
var cols=document.getElementsByTagName(“th”);
对于(变量i=0;i
我不认为这有什么用处。只是好奇:为什么?我想根据NewForm.aspx上选择的列名添加超链接。请帮我搜索列名。它只引用了部分列名Great demo。。非常好的网站。谢谢,但如果我输入DepartmentName,它会返回Department。我得到了另一个解决方案,我检索了整个innerHtml并使用了.split(“\”)[1],每次我都得到了所需的列名。非常感谢您对编码器的帮助
/* Leading and trailing white-space regular expressions */
var ls = /^\s*/;
var ts = /\s*$/;

function findControl(FieldName) {
    // Get all columns
    var cols = document.getElementsByTagName("th");

    for (var i = 0; i < cols.length; i++){
        // Trim column name before matching
        if (cols[i].innerHTML.replace(ls, "").replace(ts, "") == FieldName){         
            return cols[i];
        }
    }
}