You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CKeditor关键词选择异常求助:点击单关键词却填入全部前置关键词

修复方案

问题根源

代码错误地在循环内维护previousKeys累积数组,导致每个按钮的onclick事件绑定了循环到当前步骤的所有关键词拼接值,而非点击的单个关键词;同时循环内手动执行i++,易引发数组遍历逻辑混乱,出现跳过元素或越界风险。

修复后的代码

JavaScript部分

if (TextGrab != "") {
  var keyCSV = KeyDensityShow(TextGrab, 11, 3);
  var KeysArr = keyCSV.toString().split(',');
  var item, items = '';
  // 移除累积用的previousKeys数组
  for (var i = 0; i < KeysArr.length; i++) {
    item = '';
    var key = KeysArr[i];
    // 直接绑定当前关键词,而非累积值
    item = '<button class="btn btn-default btn-xs" type="button" onclick="document.getElementById(\'thebox\').value=\'' + key + '\';">' + 
           '<span class="badge">' + KeysArr[i+1] + '</span>&nbsp;' + 
           '<b>' + key + '</b></button>&nbsp;';
    items += item;
    // 保留i++,适配原数组"关键词+数值"成对的结构
    i++;
  }
  $('#KWdensity').html(items);
}

关键改动说明

  • 移除previousKeys累积数组,每个按钮的onclick直接赋值当前点击的key,确保点击单个关键词时输入框仅填入该关键词。
  • 保留循环内的i++,适配原逻辑中KeysArr关键词与对应数值成对存储的结构。
  • 修正按钮HTML的标签闭合顺序,避免结构错误。

可选优化(支持追加关键词)

若需求为点击关键词追加到输入框而非覆盖,可将onclick逻辑修改为:

onclick="var box = document.getElementById(\'thebox\'); box.value = box.value ? box.value + \', \' + \'' + key + '\' : \'' + key + '\';"

内容的提问来源于stack exchange,提问作者newspapper.eu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 07:15:41