首页 > 解决方案 > 返回与 jQuery 连接的动态字符串

问题描述

我想使用 jquery 在我的 javascript 代码中包含以下内容:

$('.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()...取决于我的容器有多少跨度元素?

标签: javascriptjquery

解决方案


你不需要知道<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>


推荐阅读