这就是我正在做的事情:
math
这是错误:
未捕获的TypeError:supervisors.replace不是函数
如果我这样做:
math = input('Enter division or multiplication: ')
屏幕上的结果是:
function AddSupervisor()
{
var employeeID = $('#ID').val();
var supervisorId = $('#SupervisorId').val();
var supervisors = '';
if (supervisorId > 0)
{
$.ajax({
url: '@Url.Action("AddSupervisor", "Contact")',
type: 'GET',
dataType: 'json',
data: { EmployeeID: employeeID, SupervisorID: supervisorId },
success: function(data) {
supervisors = data;
$('#divSupervisorList').text(supervisors.replace(",", "<br />"));
},
error: function(data) {
}
});
}
}
我想要的是:
$('#divSupervisorList').text(data);
但我在使用John Foo, Jane Bar
替换John Foo
Jane Bar
时遇到问题。起初我试过了:
,
当那个没有用的时候,我开始使用在ajax调用之前声明的字符串。我也尝试使用<br />
,但也遇到了同样的错误。
不确定我做错了什么。
更新
正如许多人所指出的,我的返回数据不是字符串,而是一个对象:
$('#divSupervisorList').text(data.replace(",", "<br />"));
所以,现在我要弄清楚如何将这个数组拆分成一个字符串: - )
答案 0 :(得分:1)
我的猜测是data
param实际上是一个数组,而不是一个字符串,你只能用逗号来看它,因为JS偷偷地将它串行化。您可以使用数组的join
方法将它们组合在一个字符串中:
supervisors.join('<br />')
但是,如果您尝试在jQuery的"<br />"
函数中使用text
,它将被转义。您可以改用html
功能。所以,
$('#divSupervisorList').html(supervisors.join('<br />'));
答案 1 :(得分:0)
要替换数组每个成员中的逗号,您需要在数组值上映射.replace()
:
let result = data.map(function(o){return o.replace(',','<br />')});
要加入数组成员,用<br />
分隔它们,您需要.join()
:
let result = data.join('<br />');
请注意,没有实际的逗号分隔数组成员,这只是一种显示数组值的传统方式,因此人们可以阅读和理解它们,但没有什么可以替代的。您需要做的就是使用您选择的分隔符(<br />
)加入成员,默认情况下,这是一个逗号。
所以这也会给你相同的结果:
let result = data.join().replace(',','<br />');
...因为.join()
会使用,
粘贴字符串,而.replace()
会用<br />
替换它们。
答案 2 :(得分:0)
您回复的数据是Json而不是字符串。
function AddSupervisor()
{
var employeeID = $('#ID').val();
var supervisorId = $('#SupervisorId').val();
var supervisors = '';
if (supervisorId > 0)
{
$.ajax({
url: '@Url.Action("AddSupervisor", "Contact")',
type: 'GET',
dataType: 'json',
data: { EmployeeID: employeeID, SupervisorID: supervisorId },
success: function(data) {
supervisors =JSON.stringify( data);
$('#divSupervisorList').text(supervisors.replace(",", "<br />"));
},
error: function(data) {
}
});
}
}
阅读更多: [https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify]。
答案 3 :(得分:-1)
[dataType is]&#34; json&#34;:将响应评估为JSON并返回JavaScript对象
因此,data
实际上是object
。您需要访问相关的字符串属性,例如data.supervisors.replace(...)
- 取决于您的对象模型。
我建议您通过 F12 调查问题来源,为您的成功回调添加console.log(data)
次调用并检查浏览器中的开发者控制台。
更新:上述console.log
调用的输出提示data
是一个数组。因此,您需要替换
$('#divSupervisorList').text(data.replace(",", "<br />"));
与
$('#divSupervisorList').html(data.join("<br />"));