2013-10-23 22 views
0

下面的代碼是我使用的高亮關鍵字的JavaScript函數的一部分:突出顯示搜索中的關鍵字以阻止URL變量的傳遞?

 for (var i = 0; i < keywords.length; i++) 
     { 
      var a = new RegExp(keywords[i], "igm"); 
      container.innerHTML = container.innerHTML.replace(a, "<span style='background:#FF0;'>" + keywords[i] + "</span>");  
     } 

,它實際是突出我的搜索結果的話,同時允許用戶點擊一個結果。當用戶點擊一個結果並轉到包含更多細節的頁面時,問題就出現了。 Smack在URL變量中間是'span'標記。

 details.aspx?id=2<span style='background:#FF0> /<span>&name=.. 

這反過來阻止了我的詳細信息頁被正確填充。如果我註釋掉的問題行,並使用下面的代碼的變量傳遞順利,但關鍵字不突出顯示:

   container.innerHTML = container.innerHTML.replace(a keywords[i]); 

我的問題是如何從我的網址刪除跨度標籤,使我的變量是順利通過,關鍵字保持突出顯示?

+0

我認爲你應該考慮'改變可視化'而不是試圖調整'負載鏈接'方法。考慮添加/刪除類,使高亮顯示而不更改容器的內容。 –

回答

0

因爲您正在對字符串進行文本搜索,並且您的代碼與標籤內部的屬性匹配。你不能做一個簡單的查找和替換,你不應該使用正則表達式來匹配標籤。