Javascript 如何在jQuery中使用变量id作为选择器

Javascript 如何在jQuery中使用变量id作为选择器,javascript,jquery,html,Javascript,Jquery,Html,我在这里找到了一个用于选择框的提琴:这很好,但我需要一个动态的选择框,这意味着一个动态的ID。作为jQuery和javascript的新手,如果我在php中使用动态[idx]值将每个id增加1(例如:prophlist_1,choose_1;prophlist_2,choose_2;等等),我将如何在jq中创建变量选择器。如果您有任何见解,我们将不胜感激 这是小提琴的代码: <ul id="prophlist" style="display:none;"> <li>Pro

我在这里找到了一个用于选择框的提琴:这很好,但我需要一个动态的选择框,这意味着一个动态的ID。作为jQuery和javascript的新手,如果我在php中使用动态[idx]值将每个id增加1(例如:prophlist_1,choose_1;prophlist_2,choose_2;等等),我将如何在jq中创建变量选择器。如果您有任何见解,我们将不胜感激

这是小提琴的代码:

<ul id="prophlist" style="display:none;">
<li>Prophecy 1 text</li>
<li>Prophecy 2 text</li>
<li>Prophecy 3 text</li>
<li>Prophecy 4 text</li>
<li>Prophecy 5 text</li>
<li>Prophecy 6 text</li>
<li>Prophecy 7 text</li>
<li>Prophecy 8 text</li>
<li>Prophecy 9 text</li>
<li>Prophecy 10 text</li>
</ul>
<select id="choose">
<option value="1">Title 1</option>
<option value="2">Title 2</option>
<option value="3">Title 3</option>
<option value="4">Title 4</option>
<option value="5">Title 5</option>
<option value="6">Title 6</option>
<option value="7">Title 7</option>
<option value="8">Title 8</option>
<option value="9">Title 9</option>
<option value="10">Title 10</option>
</select>

<div id="update">
</div>

$('#choose').change(
function(){
    var i = this.selectedIndex;
    $('#update').text($('#prophlist li').eq(i).text());
});
  • 预言1文本
  • 预言2文本
  • 预言3文本
  • 预言4文本
  • 预言5文本
  • 预言6文本
  • 预言7文本
  • 预言8文本
  • 预言9文本
  • 预言10文本
标题1 标题2 标题3 标题4 标题5 标题6 标题7 标题8 标题9 标题10 $(“#选择”)。更改( 函数(){ var i=此.selectedIndex; $('#update').text($('#prophlist li').eq(i).text()); });
我需要一个动态的选择框,这意味着一个动态的ID

不需要。您根本不需要使用元素ID来实现此功能。您可以为select元素指定相同的类:

然后在处理程序中,使用like
。next()
根据div在标记中的相对位置查找div,而不是使用id来查找相关div:

    $(this).next().text(...)
此外,如果
显示:无
ul元素仅用于保存描述,为什么不将其删除并将描述直接添加到每个选项中,如下所示:

<option value="1" data-desc="Prophecy text 1">Title 1</option>
$('.choose').change(function(){
    $(this).next().text( $(this).find(':selected').attr('data-desc') );
})

这里有一个最新版本的fiddle,它显示了一点JS处理多个select元素:

如果问题的标题被改写以反映问题的要求,而不是建议的解决方案,那就太好了。谢谢。我们快到了。。。我不想在div中显示选项说明的值,我想显示li的值。参见此处()选项文本“标题1”如何显示li文本“预言1文本”。。。
<option value="1" data-desc="Prophecy text 1">Title 1</option>
$('.choose').change(function(){
    $(this).next().text( $(this).find(':selected').attr('data-desc') );
})