Flemingpt
Flemingpt

Reputation: 17

Get value from table with jquery

I've already read some answers here but it keeps giving me undefined or blank alerts.

So I've got this PHP code and whenever I click in one of the stars I want JQUERY to get the value from "div class="rating-stars".

This was the last I used. It displays a blank alert...

    var pairing =  $(this).closest('td').find('.rating-stars').val();

  alert (pairing);

How do I do it? Thanks in advance.

 echo'</td>
                        <td>
                        <div class="rating-stars" value="'.$row["pairing"].'">
                        <div id="stars">
                        <span class="star" title="Ó mãe! Que mal foi que eu te fiz?" data-value="1">
                          <span class="fa fa-star"></span>
                        </span>
                        <span class="star" title="Mais valia não ter aberto a garrafa!" data-value="2">
                          <span class="fa fa-star"></span>
                        </span>
                        <span class="star" title="Assim, assim…" data-value="3">
                          <span class="fa fa-star"></span>
                        </span>
                        <span class="star" title="Eu sabia! A mãe nunca se engana!" data-value="4">
                          <span class="fa fa-star"></span>
                        </span>
                        <span class="star" title="És a melhor mãe do mundo!" data-value="5">
                          <span class="fa fa-star"></span>
                        </span>
                        </div>
                      </div>
                    </div>
                        </td>                                                                                       
                     </tr>';

Upvotes: 0

Views: 41

Answers (1)

Barmar
Barmar

Reputation: 780724

You can't use .val() on DIVs, only input elements. Use a data-XXX attribute, and read it with jQuery .data().

echo'</td>
        <td>
        <div class="rating-stars" data-stars="'.$row["pairing"].'">
        <div id="stars">
        <span class="star" title="Ó mãe! Que mal foi que eu te fiz?" data-value="1">
          <span class="fa fa-star"></span>
        </span>
        <span class="star" title="Mais valia não ter aberto a garrafa!" data-value="2">
          <span class="fa fa-star"></span>
        </span>
        <span class="star" title="Assim, assim…" data-value="3">
          <span class="fa fa-star"></span>
        </span>
        <span class="star" title="Eu sabia! A mãe nunca se engana!" data-value="4">
          <span class="fa fa-star"></span>
        </span>
        <span class="star" title="És a melhor mãe do mundo!" data-value="5">
          <span class="fa fa-star"></span>
        </span>
        </div>
      </div>
    </div>
        </td>                                                                                       
</tr>';

Then:

var pairing =  $(this).closest('td').find('.rating-stars').data("stars");

Upvotes: 1

Related Questions