Элемент: метод getAttributeNS()
Базовая реализация Широко доступно
Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
Метод getAttributeNS() интерфейса Element возвращает строковое значение атрибута с указанным именем и пространством имён. Если атрибут с указанным именем не существует, возвращаемое значение будет либо null либо "" (пустая строка); см. Примечания для подробностей.
Если вы работаете с HTML-документами и вам не нужно указывать запрашиваемый атрибут как часть конкретного пространства имён, используйте метод getAttribute() вместо этого.
Синтаксис
getAttributeNS(namespace, name)
Параметры
Возвращаемое значение
Строковое значение указанного атрибута. Если атрибут не существует, результатом является null.
Примечание: В предыдущих версиях спецификации DOM этот метод описывался как возвращающий пустую строку для несуществующих атрибутов, но обычно он не реализовывался таким образом, поскольку null имеет больше смысла. В спецификации DOM4 теперь указано, что этот метод должен возвращать null для несуществующих атрибутов.
Примеры
В следующем документе SVG считывается значение атрибута foo в пользовательском пространстве имён.
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:test="http://www.example.com/2014/test" width="40" height="40">
<circle id="target" cx="12" cy="12" r="10" stroke="#444"
stroke-width="2" fill="none" test:foo="Hello namespaced attribute!"/>
<script>
const ns = 'http://www.example.com/2014/test';
const circle = document.getElementById('target');
console.log(`attribute test:foo: "${circle.getAttributeNS(ns, 'foo')}"`);
</script>
</svg>
В HTML-документе к атрибуту нужно обращаться с помощью test:foo, поскольку пространства имён не поддерживаются.
<!doctype html>
<html lang="en-US">
<head>
<meta charset="UTF-8" />
<title>getAttributeNS() test page</title>
</head>
<body>
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:test="http://www.example.com/2014/test"
width="40"
height="40">
<circle
id="target"
cx="12"
cy="12"
r="10"
stroke="#444"
stroke-width="2"
fill="none"
test:foo="Foo value" />
</svg>
<script>
const ns = "http://www.example.com/2014/test";
const circle = document.getElementById("target");
console.log(`Attribute value: ${circle.getAttribute("test:foo")}`);
</script>
</body>
</html>
Примечания
getAttributeNS() отличается от getAttribute() тем, что позволяет дополнительно указать запрашиваемый атрибут как часть определённого пространства имён, как в примере выше, где атрибут является частью вымышленного пространства имён «test».
До спецификации DOM4 этот метод был задан для возврата пустой строки вместо null для несуществующих атрибутов. Однако большинство браузеров вместо этого возвращали null. Начиная со спецификации DOM4, в спецификации теперь указано, что нужно возвращать null. Однако некоторые старые браузеры возвращают пустую строку. По этой причине вы должны использовать hasAttributeNS() для проверки существования атрибута до вызова getAttributeNS() если существует вероятность того, что запрашиваемый атрибут отсутствует у указанного элемента.
Спецификации
| Спецификация |
|---|
| DOM # ref-for-dom-element-getattributens① |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
getAttributeNS |
1 | 12 | 1Начиная с Firefox 13,null всегда возвращается вместо пустой строки, в соответствии со спецификацией DOM4. Ранее существовали случаи, когда могла возвращаться пустая строка. |
≤12.1 | 1 | 18 | 4Начиная с Firefox для Android 14,null всегда возвращается вместо пустой строки, в соответствии со спецификацией DOM4. Ранее существовали случаи, когда могла возвращаться пустая строка. |
≤12.1 | 1 | 1.0 | 4.4 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttributeNS