这是我的尝试:
locationVar = {"xpath":".//*[text()=\"" + uniqueMenuItems[b] + "\"]//following::*[@class=\"productControllers custom-product-ctrls\"][1]/div/div/select"};
optionLocator = locationVar.replace("select", "select/option");
但这会引发错误locationVar.replace不是函数。
我如何告诉js对对象内的文本进行替换? .toString()。replace可以将其更改为字符串然后替换它,但是替换后我需要该对象保持js对象。
是否存在适用于对象的.replace()方法?
答案 0 :(得分:1)
如评论中所述:在对象属性上使用replace
,而不是对象本身。
var uniqueMenuItems = {a: 'foo', b: 'bar'};
var locationVar = {
xpath: `.//*[text()="${uniqueMenuItems.b}"]//following::*[@class="productControllers custom-product-ctrls"][1]/div/div/select`
};
var optionLocator = {
xpath: locationVar.xpath.replace("select", "select/option")
};
console.log(optionLocator.xpath); // logs: .//*[text()="bar"]//following::*[@class="productControllers custom-product-ctrls"][1]/div/div/select/option