2013-02-04 61 views
0
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]; 
    } 
} 
} 

的只有4到5個字母。如果有兩個cloumns DepartmentName的和部門,如果我們嘗試超過這個函數返回DepartmentName的,而不是系匹配部列,它與完整的列名稱不匹配。可能是什麼問題?innrhtml.indexof(字段名)不能正常工作,請閱讀字段名

+0

我看不出這可能是有用的。只是好奇:爲什麼? – rsplak

+0

我想根據在NewForm.aspx上選擇的列名添加HyperLink。只是幫助我搜索列名。它只是指部分列名 – Jigs

回答

0

這是因爲indexOf發現這個詞列名DepartmentName的,你應該使用==操作者在兩個字符串完全匹配:

/* 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]; 
     } 
    } 
} 
+0

謝謝,但它不工作:( – Jigs

+0

它適用於我,在這裏演示:http://jsfiddle.net/JesGU/ – Coder

+0

大演示..非常好的網站。謝謝但如果我輸入DepartmentName比我得到了替代解決方案,我已經檢索了整個innerHtml並使用了.split('\'')[1],並且我每次都得到了所需的列名。非常感謝您幫助編碼器 – Jigs