javascript - 使用 JQuery 动态更新 href 文本值

标签 javascript jquery

页面上有href链接,其文字不完整。例如,页面将链接文本显示为“link1”,但正确的文本应类似于“link1 - Module33”。页面和实际文本都以相同的文本开头(在此示例中,两者都以“link1”开头)。 我从 java session 中的 JSON 对象获取实际文本并进行比较。如果 JSON 文本以页面文本开头(这意味着 JSON 文本“link1 - Module33”以“link1”(页面文本)开头,则更新“link1” >”到“link1 - Module33”。

页面有以下代码来显示链接

<div class="display_links">
 <ul id="accounts_links_container">
  <li id="accounts_mb_2_id"><a href="javascript:void(0)" class="linksmall" 
    id="accounts_mb_2_a"> link1 </a></li>
  <li id="accounts_mb_11_id"><a href="javascript:void(0)" class="linksmall" 
   id="accounts_mb_11_a"> link2 </a></li>
    .
    .
    .
// more links
 </ul>
</div> 

注意:li id 不是静态的,每个页面文本都不同,但 ul id 是静态的。

我正在从 JSON 对象(来自 java session )读取正确且完整的链接文本,如下所示

var sessionValue = <%= json %>; // taken from String array

并阅读如下页面文本:-

$('.display_links li').each(function() { pageValue.push($(this).text()) });

sessionValue 具有正确的更新文本,而 pageValue 具有部分文本。我正在使用下面的代码进行比较

for(var s=0; s<pageValue.length; s++) {                
             var pageLen = $.trim(pageValue[s]).length;               
            for(var w=0; w<sessionValue.length; w++) {
                   var sesstionLen = $.trim(sessionValue[w]).length;                   
                  var newV = sessionValue[w].substring(0, pageLen);
                  if($.trim(newV)==$.trim(pageValue[s])){
                  **// UPDATING VALUES AS BELOW** 
                   pageValue[s]=sessionValue[w];             
                  }
             }
         }

我正在尝试将页面值文本更新为 session 值文本,如 pageValue[s]=sessionValue[w]; (在上面的代码中),但它实际上并未更新值。抱歉,比较文本逻辑很差。 请帮忙,如何在比较后在循环中动态更新它,以确保我更新正确的链接文本。

最佳答案

pageValue[s]=sessionValue[w]; 仅更新数组;它对 li 的文本没有任何影响。

如果您想更新 li 的文本,您需要在 each 中执行此操作。这是一个执行此操作的示例,并采用稍微更有效的方法进行比较:

$('.display_links li a').each(function() {
    var $this = $(this);
    var text = $.trim($this.text());
    var textLen = text.length;
    for (var w = 0; w < sessionValue.length; ++w) {
        var sessionText = $.trim(sessionValue[w]);
        if (sessionText.substring(0, textLen) == text) {
            text = sessionText;
            $this.text(text);
            break; // Found it, so we stop
        }
    }
    pageValue.push(text); // If you want it for something
});

关于javascript - 使用 JQuery 动态更新 href 文本值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46022804/

相关文章:

javascript - 如何使用userAgent检测移动设备

javascript - 所选选项卡上的 Div 文本 fadeIn() JQuery

jquery - 在 DOM 元素上应用 jQuery 方法

javascript - 如何获取数据表列的名称?

javascript - Google Map API v3 在模拟器中显示

javascript - 如何使用 angularjs 从范围变量中的文本中提取图像 src

javascript - ASP.NET 访问 AJAX 在 postBack 上创建的控件

javascript - 从 js 更改 css 属性会破坏 css 动画

jquery - div 在 IE8 中没有扩展到新内容

javascript - 使用socket.io的聊天服务器,消息未附加到列表中