jquery - 如何获取标签的id并应用于操作ul的内容
问题描述
我正在尝试检索包含在多个无序列表中的字符串。下面的脚本获取 ul id (alert( sentenceId
)),但是在下一行中,当我尝试sentenceId
用作标识符来检索字符串时,我什么也得不到。
$('#quiz').find('ul').each(function() {
let sentenceId = $(this).attr('id');
alert(sentenceId)
sentence = $.map($('#sentenceId li'), function(element) {
return $(element).text()
}).join(' ');
alert(sentence)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id='quiz'>
<ul class="scramble" id="Q1">
<li>I</li>
<li>piano</li>
<li>can't</li>
<li>play</li>
<li>the</li>
<button onclick="checkOrd(id);">Check</button>
</ul>
<ul class="scramble" id="Q2">
<li>moon</li>
<li>green</li>
<li>is</li>
<li>disc</li>
<li>a</li>
<li>the</li>
<button onclick="getOrd(id);">Check</button>
</ul>
</div>
如何使用我的 sentenceId 作为每个唯一列表的 id?如果我用#Q1 或#Q2 替换#sentenceId,我会得到返回的字符串。
解决方案
问题是sentenceId
一个变量,你应该这样使用:
$('#' + sentenceId + ' li')
$('#quiz').find('ul').each(function() {
let sentenceId = $(this).attr('id');
alert(sentenceId);
sentence = $.map($('#' + sentenceId + ' li'), function(element) {
return $(element).text();
}).join(' ');
alert(sentence)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id='quiz'>
<ul class="scramble" id="Q1">
<li>I</li>
<li>piano</li>
<li>can't</li>
<li>play</li>
<li>the</li>
<button onclick="checkOrd(id);">Check</button>
</ul>
<ul class="scramble" id="Q2">
<li>moon</li>
<li>green</li>
<li>is</li>
<li>disc</li>
<li>a</li>
<li>the</li>
<button onclick="getOrd(id);">Check</button>
</ul>
</div>
推荐阅读
- angular - Angular 7, nested function using same variable
- python - scikit图像公式中的双二次插值?
- sql - 带有可选参数的 SQL。填充参数时,我们需要使用 LIKE 运算符,否则返回所有值
- windows - 如何让 Azure Devops 私有 Windows 代理访问 SupportedAPIs-x64.xml?
- java - 错误:您的 buildpack 不包含 heroku/jvm buildpack!将 heroku/jvm 添加到您的 buildpack
- http-headers - In HTTP headers with parameters, are parameter names case-sensitive?
- python - Custom activation with parameter
- ruby-on-rails - Rails 5:多对多关系和控制器
- swift - Xcode 10: Code Signing my App+Framework fails, because of failure signing 3rd party dependency framework (PromiseKit). Works in Xcode 9
- rust - 将期货链接到期权期货