2015-05-31 5 views
0

У меня есть настройка HTML следующим образом, и я пытаюсь использовать jQuery для доступа к тексту в поле шрифта. Таблица имеет несколько строк, поэтому первая строка в jQuery, по какой-то причине я получаю пустую строку, возвращаемую для переменной заголовка. Спасибо за помощь!cant получить текст от элемента в jQuery

HTML

<table class="table"> 
    <tbody> 
     <tr> 
      <td class="head"> 
       <a href="link" target="_self"> 
        <p> 
         <font>SomeText</font> 
        </p> 
       </a> 
      </td> 
     </tr> 
    </tbody> 
</table> 

JQuery

$('.table').each(function(){ 
    $(this).filter(function(){ 
     var data = $(this); 
     title = data.children(".head").text(); 
     json.array.push({ 
      "title" : title 
      }); 
    }) 
}) 
+1

Символ '' элемент в 2015 году? Это редкое зрелище. Вернемся к теме, вы должны узнать больше о том, что [each()] (http://api.jquery.com/each/) и [filter()] (http://api.jquery.com/filter/) делать. –

+1

Используйте правый xml-узел! 'data.children (". head a p font "). text()' –

+0

У вас есть несколько элементов с классом 'table'? Мое предположение, если ваше использование '.filter' - что бессмысленно в коде, который вы предоставили, приводит к тому, что значение становится перезаписанным. –

ответ

1

.head не является ребенком .table. Таким образом, .children(".head") не будет возвращать какие-либо элементы. Вместо этого вы должны использовать .find.

Кроме того, .filter кажется ненужным:

$('.table').each(function(){ 
    var data = $(this); 
    title = data.find(".head").text(); 
    json.array.push({ 
     "title" : title 
    }); 
}) 
0

Ваш элемент с классом головы не имеет никакого текста в нем, вам нужно настроить селектор, чтобы получить фактический элемент шрифта, например:

data.children(".head font").text();