仅从元素获取文本

时间:2018-07-16 17:49:32

标签: jquery django django-templates

我有这个:

var y = $(document.getElementById('{{ forloop.counter }}')).text();
console.log(y)

在我的控制台中,我有这个:

My text1

          var y = $(document.getElementById('1')).text();
          console.log(y)
My text2

          var y = $(document.getElementById('2')).text();
          console.log(y)

我如何只获得My text,而又没有功能。 尝试过.textContext,但控制台显示元素undefined

UPD

<div class="span4 collapse-group">
    <div class="text-center">
      <p><a class="btn btn-md btn-outline-dark btn-square" href="#">Check &raquo;</a></p>
    </div>
    <div class="collapse">
      <div class="card card-body">
        {{text}}
        <script>
        $(".card").each(function(i,e){
  var text = $(e).text();
  console.log(text);
});

2 个答案:

答案 0 :(得分:1)

我想你的循环是:

{% for item in list %}
<div id="item_{{forloop.counter}}" class="item_list">{{ item.text }}</div>
{% endif %}

在js中,您可以将唯一类item_list定位为对象,并使用each()对其进行迭代:

$(".item_list").each(function(i,e){
    var text = $(e).text();
    if(!text || text == undefined){
       console.log('empty');
    }
    # //further processes
});

答案 1 :(得分:0)

您正在尝试获取element的文本错误。您可以执行$('#2').text()document.getElementById('1').textContent

.text()方法获取匹配元素集中每个元素的组合文本内容(包括它们的后代),或设置匹配元素的文本内容。

textContent属性设置或返回指定节点及其所有后代的文本内容。

var y = $('#1').text();
          console.log(y)

 var y = $('#2').text();
          console.log(y)
          
  var y = document.getElementById('1').textContent;
  
   console.log(y)
   
   var y = document.getElementById('2').textContent;
  
   console.log(y)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="1">Div 1</div>
<div id="2">Div 2</div>