Подтвердить что ты не робот

Получить текст абзаца внутри элемента

Я хочу иметь текстовое значение от <p> внутри элемента <li>.

HTML:

<ul>
  <li onclick="myfunction()">
    <span></span>
    <p>This Text</p>
  </li>
</ul>

JavaScript:

function myfunction() {
  var TextInsideLi = [the result of this has to be the text inside the paragraph"];
}

Как это сделать?

4b9b3361

Ответ 1

В качестве альтернативы вы также можете передать сам элемент li вашей функции myfunction, как показано ниже:

function myfunction(ctrl) {
  var TextInsideLi = ctrl.getElementsByTagName('p')[0].innerHTML;
}

и в вашем HTML, <li onclick="myfunction(this)">

Ответ 2

Используете ли вы jQuery? Хорошим вариантом будет

text = $('p').text();

Ответ 3

Попробуйте следующее:

<li onclick="myfunction(this)">

function myfunction(li) {
    var TextInsideLi = li.getElementsByTagName('p')[0].innerHTML;
}

Живая демонстрация

Ответ 4

измените свой html на следующее:

<ul>
    <li onclick="myfunction()">
        <span></span>
        <p id="myParagraph">This Text</p>
    </li>
</ul>

вы можете получить содержимое своего абзаца со следующей функцией:

function getContent() {
    return document.getElementById("myParagraph").innerHTML;
}

Ответ 5

Использовать jQuery:

$("li").find("p").html()

должен работать.

Ответ 6

HTML

<ul>
  <li onclick="myfunction(this)">
    <span></span>
    <p>This Text</p>
  </li>
</ul>​

JavaScript

function myfunction(foo) {
    var elem = foo.getElementsByTagName('p');
    var TextInsideLi = elem[0].innerHTML;
}​

Ответ 7

Если вы используете, например. "id" вы можете сделать это следующим образом:

   (function() {
    let x = document.getElementById("idName");
    let y = document.getElementById("liName");
    
    y.addEventListener('click', function(e) {
        y.appendChild(x);
    });

  
})();
<html lang="en">

<head>
    <title></title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

<body>
    <p id="idName">TEXT</p>
    <ul>
        <li id="liName">

        </li>
    </ul>
</body>
<script src="js/scripts/script.js"></script>

</html>