在textarea

时间:2016-11-10 16:25:35

标签: javascript jquery html

我通过css类找到了这个有用的文本计数器。

$(".quotecontent").filter(function() {
return $(this).text().length < 40;
}).parent().css('background', 'red');

http://jsfiddle.net/adeneo/kh8Hh/

当容器的arround是textarea时,jquery代码不再起作用了。任何想法?

请参阅:

http://jsfiddle.net/e1j7xqsx/

谢谢

1 个答案:

答案 0 :(得分:0)

如果你检查textarea的内容,你会发现那里没有DOM元素:

    <textarea>
    &lt;div class="quote"&gt;
    &lt;div class="quotestart"&gt;&lt;/div&gt;
    &lt;div class="quotecontent"&gt;&lt;p&gt;We have a new toy!&lt;/p&gt;
    &lt;div class="author"&gt;- Fernando Alonso&lt;/div&gt;&lt;/div&gt;
    &lt;div class="quoteend"&gt;&lt;/div&gt;
    &lt;/div&gt;

    &lt;div class="quote"&gt;
    &lt;div class="quotestart"&gt;&lt;/div&gt;
    &lt;div class="quotecontent"&gt;&lt;p&gt;Fight to fly, fly to fight, fight to win.&lt;/p&gt;
    &lt;div class="author"&gt;- Motto of the U.S. Navy Fighter Weapons School, TOPGUN&lt;/div&gt;&lt;/div&gt;
    &lt;div class="quoteend"&gt;&lt;/div&gt;
    &lt;/div&gt;
    </textarea>

textarea中的所有内容都是文本。因此$(".quotecontent").length0

一个解决方案可能是让一个单独的DOM元素充当错误容器,你可以在那里显示有错误的div:

var errorWrapper = $('.error-wrapper');
errorWrapper.html($('textarea').text());

$(".quotecontent").filter(function() {
    return $(this).text().length < 40;
}).parent().css('background', 'red');

$(".quotecontent").filter(function() {
    return $(this).text().length > 40;
}).parent().remove();