首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript不处理瑞典字母

JavaScript不处理瑞典字母
EN

Stack Overflow用户
提问于 2015-12-10 10:13:10
回答 2查看 648关注 0票数 0

我用于过滤的javascript代码不适用于瑞典字母。

代码语言:javascript
复制
<input name='tablefilter' type='checkbox' value='Linköping' id='tablefilter1' checked/>
<label for='tablefilter1'>Linköping</label>
<input name='tablefilter' type='checkbox' value='Mjölby' id='tablefilter2' checked/>
<label for='tablefilter2'>Mjölby</label>
<input name='tablefilter' type='checkbox' value='Norrköping' id='tablefilter3' checked/>
<label for='tablefilter3'>Norrköping</label>
<table>
  <thead>
    <tr>
      <th>Col1</th>
      <th>Col2</th>
      <th>Col3</th>
    </tr>
  </thead>
  <tbody id='tablebody'>
    <tr>
      <td>Linköping</td>
      <td>One</td>
      <td>First</td>
    </tr>
    <tr>
      <td>Mjölby</td>
      <td>Two</td>
      <td>Second</td>
    </tr>
    <tr>
      <td>Norrköping</td>
      <td>Three</td>
      <td>Third</td>
    </tr>
  </tbody>
</table>

js

代码语言:javascript
复制
/* Demo filtering table using checkboxes. Filters against first td value */

/* Set 'ready' handler' */
document.addEventListener('DOMContentLoaded', initFunc);

/* When document ready, set click handlers for the filter boxes */
function initFunc(event) {
  var filters = document.getElementsByName('tablefilter');
  for (var i = 0; i < filters.length; i++) {
    filters[i].addEventListener('click', buildAndExecFilter);
  }
}

/*
    This function gets called when clicking on table filter checkboxes.
    It builds a list of selected values and then filters the table based on that
*/
function buildAndExecFilter() {
  var show = [];
  var filters = document.getElementsByName('tablefilter');
  for (var i = 0; i < filters.length; i++) {
    if (filters[i].checked) {
      show.push(filters[i].value);
    }
  }
  execFilter(show); // Filter based on selected values
}

function execFilter(show) {
  /* For all rows of table, see if td 0 contains a selected value to filter */
  var rows = document.getElementById('tablebody').getElementsByTagName('tr');
  for (var i = 0; i < rows.length; i++) {
    var display = ""; // Default to display
    // If it is not found in the selected filter values, don't show it
    if (show.indexOf(rows[i].children[0].textContent) === -1) {
      display = "none";
    }
    // Update the display accordingly
    rows[i].style.display = display;
  }
}

http://jsfiddle.net/2Lm7pytt/4/

它适用于小提琴,但不适用于我的视觉工作室。问题是不是,它不能显示瑞典字母,因为它可以。

问题是,JavaScript不适用于瑞典字母。

我该怎么做才能让它发挥作用?

EN

回答 2

Stack Overflow用户

发布于 2015-12-10 10:17:41

您可以尝试添加到head标记的顶部。

< meta charset="utf-8“/>

票数 2
EN

Stack Overflow用户

发布于 2015-12-10 10:35:24

这可能会在几个点上失败,但是由于编码问题,比较很可能失败,所以我建议在这行之前使用调试器来断点JavaScript:

代码语言:javascript
复制
if (show.indexOf(rows[i].children[0].textContent) === -1) {
     display = "none";
}

检查textContent中包含的内容,尝试在直接窗口中进行比较,例如rows[i].children[0].textContent === "Linköping"。如果你发现这是错误的,这可能会证实这一点。

转到Visual中的FILE >,并检查此处设置的编码选项--我使用的是"Unicode (带有签名的UTF-8)-代码页65001“,我的代码包含了元代码,如布兰登在下面的答案中所建议的那样。有了这些设置,它就会按照我的意愿运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34199063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档