的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');

+0

这个为我工作,非常感谢! – MozillaFox

由于inputval是你需要正确地创建选择文本的变量。

var inputval = $('input.numbercheck').val(); 
var listitem = $('.colorpanel li[name='+ inputval + ']').attr('id'); 
+0

更换

$('.colorpanel li[name='inputval']').attr('id');

我不知道它的工作是这样的,谢谢您的回答! – MozillaFox