XPath Найти полный идентификатор элемента HTML из частичного идентификатора

ES7, используя регулярное выражение для get (). На основе MDN

const Cookie =
    { get: name => {
        let c = document.cookie.match(`(?:(?:^|.*; *)${name} *= *([^;]*).*$)|^.*$`)[1]
        if (c) return decodeURIComponent(c)
        }
    , set: (name, value, opts = {}) => { 
        if (opts.days) opts['max-age'] = opts.days * 60 * 60 * 24
        opts = Object.entries(opts).reduce((str, [k, v]) => str + `; ${k}=${v}`, '')
        document.cookie = `${name}=${encodeURIComponent(value)}` + opts
        }
    , delete: (name, path) => Cookie.set(name, '', -1, path)
    }

Cookie.set('user', 'Jim', {path: '/', days: 10}) 
// Set the path to top level (instead of page) and expiration to 10 days (instead of session)

Использование - Cookie.get (name, value [, options]): опции поддерживают все стандартные параметры файлов cookie и добавляет " days ":

  • путь: '/' - любой абсолютный путь. По умолчанию : текущее местоположение документа,
  • домен: «sub.example.com» - может не начинаться с точки. По умолчанию : текущий хост без субдомена.
  • secure: true - подавать только cookie через https. По умолчанию : false.
  • дней: 2 - дней до истечения срока действия файла cookie. По умолчанию : Конец сеанса. Альтернативные способы установки истечения: истекает: «Солнце, 18 февраля 2018 года 16:23:42 GMT» - дата истечения срока действия в качестве строки GMT. Текущую дату можно получить с помощью новой даты (Date.now ()). ToUTCString () 'max-age': 30 - то же, что и дни, но в секундах вместо дней.

Другие ответы используют «expires» вместо «max-age» для поддержки более старых версий IE. Этот метод требует ES7, поэтому IE7 в любом случае отсутствует.

13
задан user228178 15 December 2009 в 13:41
поделиться

2 ответа

Благодаря Томасу Юнгу я смог понять это. Если я использую:

//*[contains(./@id, 'f41_txt')]/@id

Это вернет только идентификатор, который я ищу.

8
ответ дан 2 December 2019 в 04:17
поделиться

Вы можете использовать contains для выбора элемента:

//*[contains(@id, 'f41_txt')]
28
ответ дан 2 December 2019 в 04:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: