#javascript #getelementbyid
#javascript #getelementbyid
Вопрос:
Я хочу иметь возможность указать, что ЕСЛИ data-path == «USB / sda1-usb-SanDisk_Cruzer_B», то выполните код и т. Д. data-path является моим атрибутом.
Есть идеи, как это сделать с помощью JS? document.getelementbyid я не думаю, что у него есть расширение для него, но, возможно, я ошибаюсь? Я нигде ничего не мог найти для этого.
Я также знаю, что вы можете использовать:
document.getElementById("db-1").hasAttribute("data-path");
Но это если у него есть то, что есть, но я хочу проверить внутри и сопоставить.
Спасибо!
Комментарии:
1. Можете ли вы использовать jQuery?
Ответ №1:
попробуйте getAttribute
метод
var attrValue = document.getElementById("db-1").getAttribute("data-path");
if ( attrValue == "USB/sda1-usb-SanDisk_Cruzer_B" )
{
//your code here
}
Комментарии:
1. Отлично! Я пытался напрямую перейти == но не повезло, странно, но вау, ха-ха, спасибо!
2. @irishwill200 рад помочь!
3. @irishwill200
getAttribute
!=hasAttribute
4. @gurvinder372 Как вы используете это для точной ссылки на строку, поэтому, если бы я искал
USB
, и строка былаUSBs
, я бы хотел, чтобы она показывала только один дляUSB
?:)5. @irishwill200 в настоящее время он соответствует только точной ссылке на строку, поскольку я использую
==
operator со значением атрибута.
Ответ №2:
Таким образом?
let path=document.getElementById("db-1").dataset.path;
if(path==="USB/sda1-usb-SanDisk_Cruzer_B"){
//do stuff
}
Комментарии:
1. Проверьте, что лучше написано в точечной нотации:
document.getElementById('db-1').dataset.path
2. так много привык к typescript
Ответ №3:
Свойство HTMLElement.dataset разрешает доступ как в режиме чтения, так и в режиме записи ко всем пользовательским атрибутам данных (data-*), установленным для элемента. Это карта DOMString, по одной записи для каждого пользовательского атрибута данных.
Код:
var el = document.getElementById('db-1');
if (el amp;amp; el.dataset.path === 'USB/sda1-usb-SanDisk_Cruzer_B') {
// Your code...
}