什么是JavaScript代码中的错误

时间:2015-07-16 02:19:38

标签: javascript jquery html

我试图点击链接将其添加到选中,检查项目是否在菜单之前不在列表中但似乎循环部分有一些问题。

JavaScript代码

 <a href="#" class="link">Bread</a>
	<a href="#" class="link">Suger</a>
	<a href="#" class="link">Tea</a>

	<select id="list">  
       
	</select>

HTML代码

blat.exe - -f anyAddress@mail.com -to recipient@mail.com -s Subject -body "type you body here" ^ -server hp2-server.abcd.abcdef:25
pause

5 个答案:

答案 0 :(得分:1)

有许多方法可以使用jQuery方法来简化它。

一个例子:

$('.link').click(function(event) {
     var item = $(this).text();
     if(!$('#list option[value=' + item +']').length){
       $('#list').append('<option value="' + item +'">' + item + '</option>');
     }
});

而不是使用for循环可以使用each()轻松迭代元素集合,这会暴露索引和元素

答案 1 :(得分:0)

你在做什么:

for (var i = 0; i < $('#list').length; i++) {

你应该这样做:

for (var i = 0; i < $('#list option').length; i++) {

答案 2 :(得分:0)

if ($('#list').options[i].text == item)

是不是缺少一些括号?

if ($('#list').options[i].text() == item)

答案 3 :(得分:0)

问题在于:

$('#list').options[i].text == item

这不是从option元素中获取select元素的方法。

试试这个:

$('#list').find('options:nth(' + i + ')')).text() == item

答案 4 :(得分:0)

使用以下代码。这是jsfiddle的目的。

&#13;
&#13;
$(document).ready(function() {    
    $('.link').click(function(event) {
        var this_item_was_not_in_list = true;
        var clickedItemName =$(this).text();
        var listLength = $('#list option').length;
	        
        for (i=0; i<listLength ; i++)
        {
            if ($('#list option')[i].value == clickedItemName)
            { 
                this_item_was_not_in_list = false; 
                break;
            }
        }
        if (this_item_was_not_in_list) 
        {
            $('#list').append('<option>' + clickedItemName + '</option>');
        }     
    });
});
&#13;
<html>      
    <a href="#" class="link">Bread</a>
    <a href="#" class="link">Sugar</a>
    <a href="#" class="link">Tea</a>

    <select id="list"></select>	

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</html>
&#13;
&#13;
&#13;