2014-01-11 2 views
0

Я тестирую веб-приложение и используя jQuery для поиска текста, содержащего определенную строку. Это функция, которую я написал, однако она, похоже, не отвечает. Я не знаю, что тег элемента впереди времени.jQuery: почему: содержит selector return undefined?

function get_element_by_text(text) { 
    $(document).ready(function(){ 
     var selector = '*:contains(' + text + ')'; 
     return $(selector).get(0); 
    }); 
} 

get_element_by_text("Unanswered"); возвращает неопределенное

+0

Вы все соответствующие элементы, которые содержат текст, даже '' тег, который, вероятно, будет первый совпадение в коллекции – adeneo

+0

И удалить обработчик документа – adeneo

+0

Я не знаю тега элемента. Я пробовал -1 как индекс и ничего не возвращал. – KJW

ответ

2

Функция get_element_by_text это ничего не возвращает, вы испытываете Dóm готовый обработчик внутри него, то возвращается значение этой внутренней функции.

Таким образом, get_element_by_text не возвращает никакого значения, таким образом, вы получаете undefined в качестве результата.

Попробуйте

function get_element_by_text(text) { 
    var selector = '*:contains(' + text + ')'; 
    return $(selector).get(0); 
} 
get_element_by_text("Unanswered"); 

, но это даст html в качестве результата из-за вашего выбора

+0

это не то, что я ожидается, я думаю, мне нужно найти ближайший родительский элемент, который содержит только текст. – KJW