我想在我的javascript代码中使用jquery:
$('.attrs span:nth-child(1)').text() + ' | ' + $('.attrs span:nth-
child(2)').text() + ' | ' + $('.attrs span:nth-child(3)').text() ...
虽然子元素的数量会发生变化,所以我像这样动态地处理它:
function getString(containerElem) {
var str = '';
for (var i = 0; i < containerElem.children().length; i++) {
((i + 1) == containerElem.children().length) ? str += '$('.attrs span:nth-child(' + (i + 1) + ')').text()' : str += '$('.attrs span:nth-child(' + (i + 1) + ')').text() + ' ' + ';
}
return str;
}
当我将其作为字符串返回时,jQuery 将无法工作,因为$
现在也是一个字符串,我可以使用一些标志或全局变量以某种方式添加到字符串中,即$.getString() + $.getString2()...
取决于我的容器有多少跨度元素?
你不需要知道你有多少<span>
,你可以用$('.attrs span')
选择它们。
然后,只需使用innerText
获取他们的文本值并使用Array#join
创建您的String
:
let spans = $('.attrs span');
let result = spans.get().map(e => e.innerText).join(' | ');
console.log(result);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="attrs">
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
<span>5</span>
</div>
可以使用选择器作为参数调用 jQuerychildren
方法,以将子项列表限制为该选择器。这样你就可以找到所有子元素,即SPAN
,遍历该元素列表读取内部文本。
function getString(containerElem) {
var str = '';
containerElem.children('span').each(function(i, element) {
str += jQuery(element).text();
});
return str;
}
console.log(getString(jQuery('.attrs')));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="attrs">
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
<span>5</span>
</div>