如果存在类,如何将值放入数组中

时间:2016-09-01 11:48:56

标签: javascript jquery node.js

我在div中有一个值列表,其中class =" price"我很有兴趣推 如果存在类,则将值转换为数组否则/'不存在'。

div模式是.mainDiv> span,.price sometime模式将是.mainDiv>跨度 有时.mainDiv> 。价格

如果class =" price"那么如何将价格值推入数组在场。

DOM树在下面。

<div class="mainDiv">
    <span>abcdsnndsjdjnd</span>
    <div class="price">$2000</div>
</div>
<div class="mainDiv">
    <span>abcdsnndsjdjnd</span>
    <div class="price">$300</div>
</div>
<div class="mainDiv">
    <span>abcdsnndsjdjnd</span>  <!-- observe here price is not there -->
</div>  

我正在使用这样的代码

var arr = [];
$('.mainDiv').each(function(i){
    if ($(this).hasClass('price')){
        arr.splice(i, 0, $(this).text());
    } else {
        arr.splice(i, 0, 'no price');
    }
});

请提前帮助我

2 个答案:

答案 0 :(得分:3)

您的代码中存在各种问题

  1. Sub CopySizeAndPosition() ' Usage: Select two shapes. The size and position of ' the first shape selected will be copied to the second. Dim w As Double Dim h As Double Dim l As Double Dim t As Double With ActiveWindow.Selection.ShapeRange(1) w = .Width h = .Height l = .Left t = .Top End With With ActiveWindow.Selection.ShapeRange(2) .Width = w .Height = h .Left = l .Top = t End With End Sub - hasClass()方法的工作方式与has()方法不同。它检查所选元素的类,而不是它的下降。因此,请使用<div ng-repeat="x in ans"> <a ui-sref="home.product({id: x.id})"><img ></a> <div> 代替
  2. $(this).hasClass('price') - 检索所有div文本,因为您只需要使用$(this).has('.price').length代价。
  3. <小时/> 在jQuery中使用 map() 方法进行优化。

    $(this).text()
    $('.price', this).text()

答案 1 :(得分:2)

首先,当// iterate aver all div var arr = $('.mainDiv').map(function(i) { // cache the `.price` element var $price = $('.price', this); // check `.price` element present or not // and based on that generate the element return $price.length ? $price.text() : 'no price'; // get the array from the generated jQuery object }).get(); console.log(arr);元素是孩子时,您在<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="mainDiv"> <span>abcdsnndsjdjnd</span> <div class="price">$2000</div> </div> <div class="mainDiv"> <span>abcdsnndsjdjnd</span> <div class="price">$300</div> </div> <div class="mainDiv"> <span>abcdsnndsjdjnd</span> <!-- observe here price is not there --> </div>上使用hasClass()。您可以使用.mainDiv.price来获取元素。

您还可以使用has()创建数组,从而简化此操作。试试这个:

find().length