2015-01-28 4 views
1

У меня есть текстовая область, которая может содержать больше, чем цитату из блока, что я хочу сделать, это получить значение первой кавычки блока, которая расположена непосредственно после открытого тега текстовой области.Получить первую цитату блока внутри textarea

HTML КОД

Случай 1:

<textarea> 
    <div dir="ltr" style="text-align: left;"> 

    <blockquote> 
    I want to grab this text 
    </blockquote> 

    <blockquote> 
    I don't want this text 
    </blockquote> 

    </div> 
</textarea> 

Случай 2:

<textarea> 
    <div dir="ltr" style="text-align: left;"> 

    <blockquote> 
    I want to grab this text 
    </blockquote> 

    </div> 
</textarea> 

Случай 3:

<textarea> 
    <div dir="ltr" style="text-align: left;"> 

    <p> 
    Good afternoon, gentlemen. I am a HAL 9000 computer. I became operational at the H.A.L 
    </p> 

    <blockquote> 
    In this case I don't want to grab anything 
    </blockquote> 

    </div> 
</textarea> 

Jquery КОД

$('textarea').each(function(){ 
    var content = $(this).val(); 
    var blockquote = $(content).find('blockquote:first').text(); 

    alert(blockquote); 
}); 

Код Jquery выше работает отлично в случае 1 и 2, но не работает в случае 3. Fiddle DEMO

+0

Ваш jQuery получает первый blockquote в текстовом поле во всех трех примерах. Так в чем проблема? – j08691

+0

В чем проблема? COde делает именно то, что его суждено сделать –

+0

@ j08691 Я хочу получить цитату блока, которая расположена непосредственно после открытого тега текстовой области не после тега p или любого другого тега. –

ответ

2

Попробуйте first-child:

var blockquote = $(content).find('blockquote:first-child').text(); 

JSFiddle.

+0

Он работал нормально, но это дало мне пустое значение в случае 3, как я могу его избежать. –

+1

'if (! Blockquote) {return; } ' – jmeas

0

Вам необходимо получить первого ребенка в текстовой области, а затем построить IF-условие, которое проверяет, является ли Tagname .

Смежные вопросы