获取子元素的值

时间:2016-10-06 11:10:58

标签: javascript jquery

我有这个结构:

<td class=​"prd-var-price">
    ​<div class=​"price-total">​
        <span class=​"price-unit">​€​</span>
        ​<span class=​"price-value">​
            <span class=​"price-value-int">​1.760​</span>
            ​<span data-decimalseparator=​"," class=​"price-value-cent">​,00​</span>​
        </span>
    ​</div>​
</td>​

当我在控制台中写字时:

  

a.getElementsByClassName( “PRD-VAR-价格”)

我会采用 price-value-int 元素的值(1760),我尝试过:

  

$(a.getElementsByClassName( “PRD-VAR-价格”)getElementsByClassName方法( “价格值-INT”));

但这不起作用。

5 个答案:

答案 0 :(得分:1)

getElementsByClassName会返回一个元素数组,如果您只想要第一个元素(在您的示例中 - 您这样做),则应使用a.getElementsByClassName("prd-var-price")[0].getElementsByClassName("price-value-int")[0]

但是由于您使用的是jQuery,因此更简单的方法是:

 $('.prd-var-price .price-value-int');

jQuery使用css选择器语法来获取元素,如果存在多于一个类结构,你仍会得到一个数组

答案 1 :(得分:0)

您可能有多个td具有相同的类。

最好将parent > child selectionfind()

一起使用
$('.prd-var-price').find('.price-value-int').text();

each()

$('.prd-var-price').each(function(){
   console.log($(this).find('.price-value-int').text());
});

&#13;
&#13;
$('td.prd-var-price').each(function(key, value){
  console.log($(this).find('.price-unit').text());
  console.log($(this).find('.price-value-int').text());
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
<td class="prd-var-price">
    <div class="price-total">
        <span class="price-unit">€</span>
        <span class="price-value">
            <span class="price-value-int">1.760</span>
            <span data-decimalseparator="," class="price-value-cent">00</span>
        </span>
    </div>
</td>
<td class="prd-var-price">
    <div class="price-total">
        <span class="price-unit">@</span>
        <span class="price-value">
            <span class="price-value-int">2.760</span>
            <span data-decimalseparator="," class="price-value-cent">00</span>
        </span>
    </div>
</td>
    </tr>
</table>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以使用jQuery FIND功能来实现目标

$(".prd-var-price").find(".price-value-int").text();

<强> Demo

答案 3 :(得分:0)

最好使用$('.prd-var-price .price-value-int)而不是$(a.getElementsByClassName("prd-var-price").getElementsByClassName("price-value-int"));

答案 4 :(得分:0)

使用JQuery:

$(&#34; tr.prd-var-price&#34;)。find(&#39; div.price-total span.price-value span:first-child&#34;)。text() ;