将逗号分隔的数字转换为不返回 JavaScript 函数结果但手动输入值的字符串可以正常工作

Casting numbers separated by commas to a string not returning results in JavaScript function but entering the values manually works fine

我有一个 JavaScript 函数,用于从 asp.net 标签中检索标签 ID 号(以逗号分隔)。 (仅供参考,这与 jQuery select2 multi select 下拉列表一起使用)。当我尝试从代码中读取以逗号分隔的数字字符串时,我没有得到任何结果。浏览器控制台没有错误。但是,如果我手动插入数据,它就可以正常工作——即使我认为两种情况下的数据看起来完全相同。这是一个例子:

效果很好:

function GetTags() {           
$(".js-class").val([1,2]); //manually entering the numbers here.
$(".js-class").trigger('change');
}

当我尝试从标签中提取数字时,它不起作用,即使字符串完全相同:1,2

function GetTags() {      
var data = document.getElementById('MainContent_lblTagIDS').innerText; //1,2 is being returned from this label
$(".js-class").val([data]);
$(".js-class").trigger('change');
}

下面是我在代码隐藏方法中解析数据的方式:

 var SelectedValues = dt.AsEnumerable().Select(s => s.Field<int>("TAGIDS")).ToArray();
 lblTagsIDS.Text = string.Join(",", SelectedValues);
 ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "myFunction", "GetTags();", true);

这是纯 JS

HTML

<input id="t" onchange="changeHandler()" type="text" value="" />
<p id="p"></p>

JS

function changeHandler() {
    var text = document.querySelector('#t').value;
    document.querySelector("#p").innerHTML = "\'"+text+ "\'";
}

这是我找到的解决方案。我需要通过调用 split 将每个数字保存在不同的序列数组中。然后我使用 jQuery each() 函数循环遍历目标 jQuery 对象的每个元素。

function GetTags() {
    var data = document.getElementById('MainContent_lblTagsIDS').innerText;    
    var newarray = data.split(",");
    $.each($(".js-class"), function () {
        $(this).val(newarray);
    });
    $(".js-class").trigger('change'); // Notify any JS components that the value changed);
}