2014-01-11 4 views
-3

У меня есть пользовательский div, который был изменен на элемент ввода, этот пользовательский элемент ввода div имеет тег <p> внутри с текстом-заполнителем по умолчанию. Я хочу проверить, что он не пуст, как делать это в требуемом свойстве в обычном элементе ввода.Проверьте определенную строку в javascript?

При отправке я хочу, чтобы JavaScript проверял, имеет ли элемент div элемент по умолчанию или новый текст.

Я использовал этот код

var data =$('#divtext').html(); 
if(data == '<p>Default place holder</p>') 
{ 
    console.log('empty'); 
} 
else 
{ 
    console.log('notempty'); 
} 

Однако независимо от того, как я представляю DIV без текста я получаю ответ «notempty», но почему?

+0

Так что 'data' равен в этом случае ? – Krease

+2

'$ ('divtext')' будет выбирать элементы с ** тегом name ** "divtext". В HTML нет такого элемента в HTML. Подробнее о селекторах: http://learn.jquery.com/using-jquery-core/selecting-elements/, http://api.jquery.com/category/selectors/. –

+0

@FelixKling, которая была типичной ошибкой – rksh

ответ

1

Проблема очень проста в том, что ваш селектор ошибочен. Вы должны выбрать классы с помощью:

var data = $('.divtext').html(); 

и идентификаторы с помощью:

var data = $('#divtext').html(); 

Кроме того, вы должны следить с проверки содержимого с помощью сравнения строк. Было бы гораздо лучше искать по ключевому слову, например, слово «По умолчанию», выполнив следующие действия:

var $data = $('#divtext p').html(); //notice I retrieve the html contents of the contained <p>, not the parent <div>. 
if ($data && $data.trim().toLowerCase().indexOf('default') === 0) { 
    console.log('empty'); 
} else { 
    console.log('notempty'); 
} 

Это сделает его гораздо более вероятно, что вы действительно будете соответствовать тому, что вы хотите. .trim().toLowerCase() препятствует пробиванию простыни и обсадной колонне.

+0

yah моя ошибка :) спасибо за дополнительную помощь – rksh

3

Ваш селектор неисправен.

У вас есть элемент с id divtest? Если так вам нужно:

var data = $("#divtext").html(); 
0

Вы не включают селектор,

если ваш DIV с классом

var data = $('.divtext').html(); 

если ваш DIV с идентификатором

var data = $('#divtext').html(); 
Смежные вопросы