我在元素中有两个元素。如下面=>
<div class="NDateCount" style="display:inline-block">
<!--Issue to solve-->
<small style="display:none;" class="ng-binding">2017-07-08T12:44:10.367+06:00</small>
<small ng-show="CountPostDate(post.timelineStrore.creationDate) < 2" style="color:#1ab394;" class="ng-binding"><i class="fa fa-clock-o"></i> 3 hours ago</small>
<!--End of Issue to solve-->
</div>
我有这种div超过10次动态生成。我希望div
元素的第一个孩子是small
文本;我到目前为止做了==&gt;
var ReloadTime = function () {
$('.NDateCount').each(function () {
var OldValue = $(this).first().text();
alert(OldValue);
});
setTimeout(ReloadTime, 50);
}
但上面的函数给出了small
两个标签内容的内容。
喜欢==&gt;
有解决这个问题的方法......
答案 0 :(得分:2)
这样做
var ReloadTime = function () {
$('.NDateCount').each(function () {
var OldValue = $(this).find('small').eq(0).text();
alert(OldValue);
});
setTimeout(ReloadTime, 50);
}
它适用于你。
答案 1 :(得分:0)
first()
正在返回div
元素,因此您可以在其中获取文本。
获取children
的{{1}},然后使用$(this)
:
first()
var OldValue = $(this).children().first().text();
var ReloadTime = function() {
$('.NDateCount').each(function() {
var OldValue = $(this).children().first().text();
alert(OldValue);
});
//setTimeout(ReloadTime, 50);
}
ReloadTime();
答案 2 :(得分:0)
var ReloadTime = function () {
$('.NDateCount').each(function () {
var OldValue = $(this).find('small').first().text();
alert(OldValue);
});
}
setTimeout(ReloadTime, 50);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="NDateCount" style="display:inline-block">
<!--Issue to solve-->
<small style="display:none;" class="ng-binding">2017-07-08T12:44:10.367+06:00</small>
<small ng-show="CountPostDate(post.timelineStrore.creationDate) < 2" style="color:#1ab394;" class="ng-binding"><i class="fa fa-clock-o"></i> 3 hours ago</small>
<!--End of Issue to solve-->
</div>
&#13;
首先,您所犯的主要错误是setTimeout()
函数位于ReloadTime()
函数内。因此,setTimeout()
不会调用该函数,除非您触发该函数一次。所以我不同意上面的答案。其次,在$(this)
函数内使用each
引用单个$('.NDateCount')
元素以便实现您的需要,首先需要在{{下找到元素<small>
1}}然后获取$(this)
元素,最后获取first()