Не можете получить значение элемента по имени класса с Javascript? - PullRequest
0 голосов
/ 29 мая 2020

У меня есть номер пациента, который размещен на моем сайте из базы данных Caspio. Я хочу вытащить этот номер и сохранить его как Javascript var PatientNumber. Я пытался сделать это по ClassName, ID, Name, и ничего не работает. Мне возвращается «undefined».

Вот снимок экрана с экрана инспектора. https://recordit.co/MUAGMqpUgn

Тег HTML, на который я нацелен:

<dd class="cbResultSetData cbResultSetNestedAlign">ClinicA11-PF-TR1-P1</dd>

Вот код, который я пробовал.

<?php
add_action( 'wp_head', function () { ?>
<script type="text/javascript">  
function getPatientNumber(){  
    var patientNumber;
/*  var patientNumber = document.getElementsByName('DataCtnr');*/
    var patientNumber = document.getElementsByClassName("dd.cbResultSetData.cbResultSetNestedAlign")[0];
/*  var patientNumber=document.getElementById("cbTable_51135f773f94b4");  */
    alert(patientNumber);
}
</script>
<?php } );

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

Ваше выражение:

document.getElementsByClassName("dd.cbResultSetData.cbResultSetNestedAlign")

не будет выбирать элемент, который вы ищете. Как написано, он ищет элементы с:

class="dd.cbResultSetData.cbResultSetNestedAlign"

, который не является вашим желаемым элементом.

Это выражение:

document.getElementsByClassName("cbResultSetData cbResultSetNestedAlign")

выберет все элементы с:

class="cbResultSetData cbResultSetNestedAlign"

Но чтобы выбрать первый элемент <dd> с этими классами, вы можете использовать:

document.querySelector("dd.cbResultSetData.cbResultSetNestedAlign");

, который выберет первый элемент, который выглядит следующим образом:

<dd class="cbResultSetData cbResultSetNestedAlign">

let dd = document.querySelector('dd.cbResultSetData.cbResultSetNestedAlign');
console.log('dd:', dd);

let results = document.getElementById('results');
results.innerHTML = dd.innerHTML;
The DD tag:<br/>
<dd class="cbResultSetData cbResultSetNestedAlign">ClinicA11-PF-TR1-P1</dd>

<br/>
Results: <span id="results"></span>
0 голосов
/ 29 мая 2020

Попробуйте добавить innerText в конец этой строки - var patientNumber = document.getElementsByClassName("dd.cbResultSetData.cbResultSetNestedAlign")[0]; вот так

var patientNumber = document.getElementsByClassName("dd.cbResultSetData.cbResultSetNestedAlign")[0].innerText;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...