2010-09-16 163 views
2

对不起,我应该直接发布脚本而不清理它。请检查更新后的脚本,现在应该清除一些事情。谢谢!jQuery上一页()下一页()问题

考虑下面的JavaScript:

var selected = 0; 
    var options = 0; 

    $('.newListSelected').each(function() { 

     selected = $(this).children('.selectedTxt'); 
     selected = selected.text(); 

     /* Everything before this line works completely fine */ 

     options = $(this).prev(); 

     options.find('option[value=' +selected+ ']').attr('selected', 'selected'); 

    }).remove(); 

和HTML:

<select name="type[]" style="display: none;"> 
    <optgroup> 
     <option value="none">Select</option> 
    </optgroup> 
    <optgroup label="First Group"> 
     <option value="1">One</option> 
     <option value="2">Two</option> 
    </optgroup> 
    <optgroup label="Second Group"> 
     <option value="10">Ten</option> 
     <option value="20">Twenty</option> 
    </optgroup> 
</select> 

<div class="newListSelected"> 
    <div class="selectedTxt">20</div> 
    <ul class="newList"> 
     <!-- Other stuff here --> 
    </ul> 
</div> 

我试图做的其实是增加了selected属性对应的选择选项具有相同值为.selectedTxt中的文字。在上面的代码中,它应该添加selected="selected"<option value="20">Twenty</option>

然而,它没有按预期执行,我也尝试在prev();以下添加alert(option);,但它没有输出任何有用的东西。

谢谢。

+0

Works fine http://jsfiddle.net/HmLjw/然而......你一次只能选择1个选项......那......他们是什么,你究竟在做什么在这里帮凶? – 2010-09-16 07:35:12

+0

适合我。在我运行代码后,选择'2'选项。在正常的选择框中只能选择一个选项! – 2010-09-16 07:35:37

+0

您不能选择所有选定的元素。 – RobertPitt 2010-09-16 07:35:41

回答

4

JavaScript的正常工作,因为在这里可以看到:http://jsfiddle.net/4HsXp/

如果您需要能够在select元素来选择多个项目,您需要设置multiplesize属性,像这样:

<select multiple="multiple" size="2"> 
    <option>1</option> 
    <option>2</option> 
</select> 

参见:http://reference.sitepoint.com/html/select


编辑:

附加console.log声明到新的代码仍然没有任何问题。 Running it on jsfiddle给了我正确的输出:

jQuery(select) 
Original Value: none 
New Value: 20 
+0

...为什么我没有想到,哦哦+1 :) – 2010-09-16 07:56:19

+0

我已经更新了我的代码,对于混淆抱歉! – user435216 2010-09-16 09:37:55

+0

@user更新,*仍然*没有什么似乎是错的。你能否详细说明看似有什么问题? – 2010-09-16 09:55:40

0

我不知道你正在尝试做的,但为什么不能你只是选择适当选择所有选项元素?如果你只想选择一些选项,那么你必须添加额外的选择器属性。

$('select option').each(function() { 
    $(this).attr('selected', 'selected'); 
}); 
+0

我已经更新了我的代码,对于混淆抱歉! – user435216 2010-09-16 09:43:55