Как заменить текст внутри объекта js? - PullRequest
0 голосов
/ 25 марта 2019

Вот моя попытка:

  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 works, чтобы заменить ее на строку, а затем заменить ее, однако мне нужно, чтобы объект оставался объектом js после замены.

Есть ли метод .replace (), который работает с объектами?

1 Ответ

1 голос
/ 26 марта 2019

Как сказано в комментариях: используйте 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...