我有一个变量,当我执行console.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实际上返回一个值的事实表明该元素存在且未定义。我尝试过类型转换toString,这没什么区别。
答案 0 :(得分:2)
在这一行
thisbuttonDownContents = thisbuttonDownContents.textContent;
您正在用DOM元素的string
属性中包含的textContent
替换以前拥有的DOM元素。
很显然,thisbuttonDownContents
不再是DOM元素,因此它不再具有textContent
属性。
但是即使删除了这一行,replace
还是直接在包含字符串或字符串文字的变量上调用的函数,因此,正如其他人指出的那样,>
var test = thisbuttonDownContents.textContent.replace("Selected","");
或者,如果您坚持引言中提到的有问题的路线,
var test = thisbuttonDownContents.replace("Selected","");