我有一个变量在我做控制台时输出内容.log,但是当我尝试对这个变量进行 .str.replace 操作时,它说它是未定义的!
var thisbuttonDownContents = document.getElementById("Frm" + frm + 'Results');
if (thisbuttonDownContents != null) {
thisbuttonDownContents = thisbuttonDownContents.textContent;
console.log(thisbuttonDownContents); //This outputs: West Ter - Selected
var test = thisbuttonDownContents.textContent.str.replace("Selected", "");
//^ This gives the error: Uncaught TypeError: Cannot read property 'str' of undefined
我在这个 javascript 中还有另一个函数,我已经从中复制并粘贴了这段代码,它工作正常! console.log 实际上返回一个值的事实表明该元素存在并且不是未定义的。我已经尝试过类型转换到字符串,这没有区别。
在这一行中
thisbuttonDownContents = thisbuttonDownContents.textContent;
您将以前拥有的 DOM 元素替换为 DOM 元素的 textContent
属性中包含的string
。
显然,thisbuttonDownContents
不再是 DOM 元素,因此它不再具有textContent
属性。
但是,即使您删除了该行,replace
函数也是直接在包含字符串或字符串文字的变量上调用的函数,因此,正如其他人指出的那样,它必须是
var test = thisbuttonDownContents.textContent.replace("Selected","");
或者,如果你坚持引言中提到的有问题的台词,
var test = thisbuttonDownContents.replace("Selected","");