Javascript 函数 TypeError 但只在 substring() 字符串上

Javascript function TypeError but only on substring() strings

本文关键字:字符串 substring 函数 TypeError Javascript      更新时间:2023-09-26

好吧,请原谅我冗长的标题。我的代码截图将在页面底部。

我创建了一个 javascript 程序,该程序将数据透视表的行和列更改为预定义的值。最初,我通过使用$(".Dropdown").val(value).trigger("change");来做到这一点,只要我不使用javascript插入值,它就可以很好地工作。

IE <onclick="presetFunction('count', 'Heatmap', ['ClassNum'], ['Grade'])">键入到页面上工作正常。但是,使用 javascript 将上面的行放在页面上不会。

当我查看控制台时,出现此错误:"TypeError: opts.aggregators[aggregator.val(...)]不是函数",我检查了我的类型(以防我的字符串解剖改变了类型),这不是问题。我已经检查了值,这也不是问题。

这是我正在使用的代码截图:

元素我正在将点击附加到:

<li id="one" class="Barchart">
    <a href="#one">Barchart<span>5</span></a>
    <ul id="bchart" class="sub-menu">
    </ul>
</li>

移动事物的Javascript:

function presetFunction(Agg, Rend, Col, Row) {
    $(".pvtRenderer").val(Rend).trigger("change");
    $(".pvtAggregator").val(Agg).trigger("change");
    $(".label.label-info").each(function (index, element) {
        test = $(element).html();
        test = test.substring(6, test.length - 42);
        if ((Col.indexOf(test)) != -1)
            $(".pvtAxisContainer.pvtRows.ui-sortable").append(element);
        else if (Row.indexOf(test) != -1)
            $(".pvtAxisContainer.pvtHorizList.pvtCols.ui-sortable").append(element);
        else
            $(".pvtAxisContainer.pvtUnused.pvtHorizList.ui-sortable").append(element);
        $(element).triggerHandler("");
    });
}

在这里给出一个字符串进行测试:

function loadPresets() {
    var presets = "''count'', ''Bar Chart'', [''ProfLastName''], [''Grade'']";
    var sep = presets.indexOf(",");
    var style = presets.substr(0, sep).trim();
    presets = presets.substr(sep + 1, presets.length).trim();
    sep = presets.indexOf(",");
    var type = presets.substr(0, sep).trim();
    presets = presets.substr(sep + 1, presets.length).trim();
    sep = presets.indexOf("]");
    var row = presets.substr(0, sep + 1);
    presets = presets.substr(sep + 2, presets.length);
    var col = presets.trim();
    var link = '<li><a href='"#'" id='"b01'"><em>01</em>Teacher vs. Grade</a></li>';
    $("#bchart").append(link);
    $("#b01").click(function () {
        presetFunction(style, type, row, col);
    });
}

任何帮助将不胜感激。CF

问题是变量中有单引号。摆脱它们。

您的点击看起来像这样

presetFunction( "'style'", "'type'", "'row'", "'col'");