использовать пользовательский атрибут в js для элемента

Это можно сделать эффективным способом, используя индексы, где значения меняются:

x <- c(1,0,0,0,1,2,1,0,0,1,1)

Найти, где значения меняются:

diffs <- x[-1L] != x[-length(x)]

Получить индексы, а затем получить разницу в последующих индексах:

idx <- c(which(diffs), length(x))
diff(c(0, idx))
-1
задан Aleksey Solovey 13 July 2018 в 12:39
поделиться

3 ответа

Вместо того, чтобы пытаться нажать значение на this, вы можете использовать функцию setAttribute:

<a onclick="this.setAttribute('dialog', 'anything');">anythingAlso</a>
1
ответ дан Alex Boyle 17 August 2018 в 12:51
поделиться
  • 1
    Какую разницу вы ожидаете сделать? – RobG 13 July 2018 в 12:51
  • 2
    – Alex Boyle 13 July 2018 в 12:58
  • 3
    @AlexBoyle Вы можете присвоить произвольные свойства любому объекту в JavaScript, свойство создается при первой записи. this.dialog = 'foo' и this.setAttribute('dialog', 'foo') принципиально идентичны с точки зрения JavaScript, а использование setAttribute не приводит к тому, что этот код ведет себя по-другому. По-прежнему нет способа, которым этот код будет вызывать диалог при нажатии ссылки. – meagar♦ 13 July 2018 в 13:04
  • 4
    @meagar Исправьте меня, если я ошибаюсь, но похоже, что this.dialog и this.setAttribute не обрабатываются одинаково: plnkr.co/edit/HQagBZrEfAAsleJ7IMqu?p=preview – Alex Boyle 13 July 2018 в 13:29
  • 5

Изменение элемента href элемента работает, потому что поведение по умолчанию (по ссылке) по-прежнему соблюдается.

Атрибут, который вы ввели, dialog, не влияет на поведение по умолчанию. Щелчок по ссылке все равно приведет к тому, что браузер выполнит ее href.

Если вы хотите изменить поведение ссылки и открыть клик какого-то диалога, вам нужно сделать намного больше, чем просто присвойте значение случайному свойству элемента. Вы должны подавить значение по умолчанию и определить свой собственный внутри обработчика событий.

1
ответ дан meagar 17 August 2018 в 12:51
поделиться
  • 1
    & quot; Атрибут ... & quot; должно быть «Свойство ...». ;-) – RobG 13 July 2018 в 12:49

Используйте DOM для доступа к атрибутам HTML

element.hasAttribute('foo'); element.getAttribute('foo'); element.setAttribute('foo', value); element.removeAttribute('foo');
-1
ответ дан user9116254 17 August 2018 в 12:51
поделиться
Другие вопросы по тегам:

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