2015-12-18 73 views
0

我有類似顏色組(紅,藍,綠等)約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是位於。

任何幫助,將不勝感激。

回答

0

嘗試

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

+0

這個爲我工作,非常感謝! – MozillaFox

0

由於inputval是你需要正確地創建選擇文本的變量。

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

更換

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

我不知道它的工作是這樣的,謝謝您的回答! – MozillaFox

相關問題