es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo seleccionar mi propio texto dentro de un elemento, excepto las etiquetas incluidas, con phpQuery?

<p><!-- begin snippet: js hide: false console: true babel: false --></p>

<p><!-- language: lang-js --></p>

<pre><code>function getPrice() {
  return $('.product__element').contents().eq(0).text();
}

console.log(getPrice()); //returns **A**.
</code></pre>

<p><!-- language: lang-html --></p>

<pre><code><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<div class="product__element">
  A
  <span>B</span>
</div>
</code></pre>

<p><!-- end snippet --></p>

<p>https://jsfiddle.net/sb67Lwpx/</p>

<p>But <strong>phpQuery</strong></p>

<pre><code>pq('.product__element')->contents()->eq(0)->text(); 
</code></pre>

<p>returns <strong>A B</strong>.</p>

<p>How to get only <strong>A</strong> in phpQuery ?
HTML can not be edited.</p>
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener solo “A” en phpQuery, puedes modificar el código de la siguiente manera:

    pq('.product__element')->contents()->filter(function() {
      return this.nodeType === 3;
    })->eq(0)->text();
    

    Este código filtra solo los nodos de texto y devuelve el primero, que contiene el valor deseado de “A”.

Comments are closed.