的jQuery查找元素及其标识分配给另一个元素
问题描述:
我有类似颜色组(红,蓝,绿等)约9无序列表。每个颜色组包含x个列表项目(浅蓝色,深蓝色等)。当用户点击某个列表项时,它会将列表项的ID(包含特定背景颜色)分配给预览框并显示所选的背景颜色。它还将单击列表项的文本字符串传递给输入字段.numbercheck。我需要这个文本字符串进行进一步处理。 HTML标记的的jQuery查找元素及其标识分配给另一个元素
例子:
<input type="text" class="numbercheck">
<div class="previewbox" id="nocolor"></div>
<div class="color-panels">
<ul id="blue-panel" class="colorpanel">
<li id="ral-1000-lightblue" name="1000">RAL 1000</li>
<li id="ral-1001-darkblue" name="1001">RAL 1001</li>
</ul>
<ul id="red-panel" class="colorpanel">
<li id="ral-2000-red" name="2000">RAL 2000</li>
<li id="ral-2001-darkred" name="2001">RAL 2001</li>
</ul>
</div>
什么上述作品我,文本字符串被传递给输入字段和正确的颜色显示在预览框中。但我也希望用户能够输入一定的数字(即2000),然后查找具有相同名称的列表项(这将是<li id="ral-2000-red" name="2000">RAL 2000</li>
)。如果<li>
名称与输入值匹配,那么列表项的ID应该像<div class="previewbox" id="ral-2000-red"></div>
那样传递到预览框。如果名称与输入值不匹配,则该ID应保持id="nocolor"
。
请注意,我已经有其提取从输入值的数字工作的功能,所以当“RAL 1000”或“1000 ABC”等进入,它会从字符串中提取1000。
我一直在寻找了几个小时的互联网,在这一点上我不知道用什么样的代码来实现这一点。我已经尝试过的东西,如:
var colorname = $('.colorpanel li').attr('id');
var inputval = $('input.numbercheck').val();
if (colorname == inputval){
$('.previewbox').attr('id',colorname);
}
或者:
var inputval = $('input.numbercheck').val();
var listitem = $('.colorpanel li[name='inputval']').attr('id');
最后一个例子不工作对我来说,它给了我该说“)”错误缺少的行,其中var listitem
是位于。
任何帮助,将不胜感激。
答
尝试
$('.colorpanel li[name='+ inputval+ ']').attr('id');
答
由于inputval
是你需要正确地创建选择文本的变量。
var inputval = $('input.numbercheck').val();
var listitem = $('.colorpanel li[name='+ inputval + ']').attr('id');
+0
这个为我工作,非常感谢! – MozillaFox