为什么't我的split()分隔符已确认

Why Isn't My split() Delimiter Acknowledged?

本文关键字:分隔符 确认 split 我的 为什么      更新时间:2024-04-21

刚刚开始学习JavaScript;编写一些具有相对基本功能的计算器。我发现有必要将多个变量值放在下拉菜单的选项标签中,经过研究,我认为最简单的方法是将它们放在一个字符串中,然后用split()函数拆分它们,但无论我指定的分隔符是什么,它都会像没有一样,并单独拆分每个字符。为什么?

<select name="fuel" onChange="document.scalc.fuel.value=document.scalc.fuel.value.split(',')">
    <option value="199x1,50">cu/ft Natural Gas(Via Storage Tank Burner, 65% Efficient)</option>
</select>

Cᴏʀʏ提出了一些好的观点。此外,在测试JavaScript时,打开浏览器的JavaScript控制台会很有帮助,这样它就可以向您显示遇到的任何错误。

我根本无法让你的示例代码做任何事情——也许你把它缩短得有点太多了。

你的页面可能看起来像

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Example</title>
<script>
/* TODO: Give this function a meaningful name. */
function x(srcId, targetId) {
    // Get reference to the source element
    var src = document.getElementById(srcId);
    // Make sure it is a select element
    if (src.nodeName.toLowerCase() === "select") {
        var target = document.getElementById(targetId);
        // Put the first part of the source's value in the target
        target.value = src.value.split(",")[0];
    }
}
</script>
</head>
<body>
<form id="scalc">
    <select id="fuel" onChange="x('fuel', 'result')">
        <option value="199x1,50">cu/ft Natural Gas(Via Storage Tank Burner, 65% Efficient)</option>
        <option value="50x2,60">cu/ft Natural Gas(Via Super Burner, 70% Efficient)</option>
    </select>
    <input id="result" type="text" readonly="readonly" />
</form>
</body>
</html>

参考文献:
<元字符集='utf-8'>与<meta-http-equiv='Content-Type'>
最佳实践:通过HTML id或名称属性访问表单元素
javascript如何确定html元素的类型
也很有用:W3C标记验证服务