Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么函数显示为未定义_Javascript_Html_Xslt - Fatal编程技术网

Javascript 为什么函数显示为未定义

Javascript 为什么函数显示为未定义,javascript,html,xslt,Javascript,Html,Xslt,XSL: 控制台中出现以下错误,导致站点出现问题: $(function () { var cityNameRye = $("#spnCityID0ED").text().split(";")[1]; if (cityNameRye.toLowerCase() == "rye") { //do something } }); 我可以创建一个清除错误的伪函数吗?代码中没有任何名为replaceAll()的函数 试一试 并查看是否仍然存在错误在执行XSL中的

XSL:

控制台中出现以下错误,导致站点出现问题:

$(function () {
    var cityNameRye = $("#spnCityID0ED").text().split(";")[1];
    if (cityNameRye.toLowerCase() == "rye") {
        //do something
    }
});

我可以创建一个清除错误的伪函数吗?

代码中没有任何名为replaceAll()的函数

试一试


并查看是否仍然存在错误

在执行XSL中的函数代码之前,将该函数代码放在可以加载的位置:

function replaceAll(varName){
   //code to execute
}
并从XSL中调用它,如:

function replaceSpnCity(idPart) {
  var idsToReplace = $("[id^='spnCity']"); //updated missing quote
  idsToReplace.each(function() {
    var id = $(this).attr('id');
    var newId = id.replace(idPart,'');
    $(this).attr('id',newId);
  });
}


replaceAll方法在纯JS中不存在,因此出现错误。你想通过使用它来实现什么?是否更改字符串或替换(删除?)具有特定id的所有元素?如果您想要第二个,请记住必须对JQuery对象进行操作,例如$('Element to replace#id with').replaceAll('#id'))。这里是API文档:。我在XSL文件中有一个循环来遍历许多条目,我想为每个条目创建一个唯一的ID,然后只在城市的后端条带中创建。我更新了我的问题你能使用JQuery吗?这将使解决方案更容易:)在查看了我的XSL和JavaScript之后,您能否帮助我替换代码,这样它就不会抛出错误?我会非常感激的。我在XSL文件中有一个循环来遍历许多条目,我想为每个条目创建一个唯一的ID,然后只在城市的后端条带中创建。我更新了我的问题@刘:谢谢,但这对我不起作用:/检查这里。如果您在$(function(){})中运行它,它只在具有闭合作用域的文档上执行。id也需要在引号之间,因为它是一个字符串而不是一个变量。我想我需要一个返回城市的函数。但我明白你的意思了……你问的问题是为什么它没有定义:)谢谢。现在我有另一个错误:
ID0ED未定义
我想我永远也无法解决这个问题:/I可以向您显示显示错误的页面。在执行concat时,您必须使用',在$ID周围加上额外的引号;,因为函数将字符串作为输入参数,并且您正在尝试传递变量(不带引号)。我相应地调整了我的答案。
Uncaught ReferenceError: replaceAll is not defined
function replaceAll(varName){
   //code to execute
}
function replaceSpnCity(idPart) {
  var idsToReplace = $("[id^='spnCity']"); //updated missing quote
  idsToReplace.each(function() {
    var id = $(this).attr('id');
    var newId = id.replace(idPart,'');
    $(this).attr('id',newId);
  });
}
<xsl:value-of select="concat('replaceSpnCity(&apos;',$idS,'&apos;);')"/>