我在div中有一个值列表,其中class =" price"我很有兴趣推 如果存在类,则将值转换为数组否则/'不存在'。
如果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');
}
});
请提前帮助我
答案 0 :(得分:3)
您的代码中存在各种问题
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>
代替$(this).hasClass('price')
- 检索所有div文本,因为您只需要使用$(this).has('.price').length
代价。<小时/> 在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