Выбор непомеченного текста с помощью Jquery - PullRequest
1 голос
/ 31 января 2012

У меня есть следующий HTML;

<p class="postcontent">
<img src="#">
Some Text
</p>

Я хочу иметь возможность скрыть только текст.Пока у меня есть это;

  jQuery(function($) {
$(".postcontent").$('[type=text]').hide();
  });

Редактировать: я не имею никакого контроля над HTML, поэтому мне нужно добавить его с помощью Jquery.

Ответы [ 6 ]

3 голосов
/ 31 января 2012

Вы можете обернуть текст в FLY и затем скрыть его:

HTML:

<p class='postcontent'> <a href=#> dsds </a> aaa </p>

Javascript:

$('.postcontent').contents().filter(function() {
     return this.nodeType == 3; })
             .wrap('<label"> <label />').parent().hide();

JSFiddle


Обновление на основе комментария:
Почему он создает две метки? это просто, потому что имеет два текстовых узла ... :

<p class='postcontent'> (!!FirstTextNode!!)
    <a href=#> dsds </a> (!!SecondTextNode!!) aaa 
</p>    
1 голос
/ 31 января 2012

Если по какой-то причине вы не можете редактировать исходный HTML, вам нужно будет использовать .contents для получения текстовых узлов:

$(".postcontent").contents().each(function(){
    if(this.nodeType == 3){
        $(this).wrap("<div>").parent().hide();
    } 
});

http://jsfiddle.net/Wg6Pw/

1 голос
/ 31 января 2012

Вам нужно будет обернуть текст в другой элемент, такой как span или label, и скрыть это:

HTML

<p class="postcontent">
    <img src="#">
    <label>some Text</label>
</p>

JQuery

$(".postcontent > label").hide();    
1 голос
/ 31 января 2012

Насколько я знаю, вы не можете напрямую применять CSS к текстовому узлу.

Возможно, вам нужно обернуть текст, который вы хотите скрыть, в новый элемент, например div или span.Попробуйте что-то вроде

<p class="postcontent">
<img src="#">
<span class="posttext">
Some text
</span>
</p>

Тогда

$(".postcontent .posttext").hide();
0 голосов
/ 31 января 2012

Поместите текст, который вы хотите скрыть в элемент, а затем скрыть, вызвав идентификатор.

0 голосов
/ 31 января 2012

Это очистит текст в вашем примере. Затем вы можете сохранить текст и добавить его обратно, если вам нужно. Вот jsfiddle, который ломает, как это работает: http://jsfiddle.net/brentmn/SXgZc/

var pc = $('.postcontent');
pc.html(pc.html().replace(pc.text().trim(), ''));
...