0

当用户单击一个项目时,我有以下选择下拉列表:

        $(this).html($("<select/>", {
          class: 'sel',
        }).append($("<option/>", { text: "WIP" }))
          .append($("<option/>", { text: "C" }))
          .append($("<option/>", { text: "A" }))
          .append($("<option/>", { text: "AR" }))
          .append($("<option/>", { text: "NS" }))
        );

此外,我有一个名为的变量status,它被定义为“WIP”、“C”、“A”、“AR”或“NS”。

status = trim(($(this).text()));

我想让它在我单击select下拉列表option == status时被选中。例如:

status = "WIP"
<select class="sel">
     <option selected="selected">WIP</option>
     <option>C</option>
     ...
</select>        
4

3 回答 3

2

我理解这个问题的方式,你想设置一个默认值option,以便用户点击之前会选择一个选项。

以下是你将如何做到这一点:

var status = "WIP";

$("<select/>", {
    class: 'sel',
})
.append( $("<option/>", { text: "WIP" }) )
.append( $("<option/>", { text: "C" }) )
.append( $("<option/>", { text: "A" }) )
.append( $("<option/>", { text: "AR" }) )
.append( $("<option/>", { text: "NS" }) )
.val( status )
.appendTo(this);

请注意,整个select元素应该在将append其添加到 DOM 之前构建。这对性能来说好得多,因为与 DOM 的任何交互都非常昂贵。

于 2012-08-10T17:59:15.197 回答
2

如果将选项文本值放入数组中,还可以减少代码的重复:

var options = ['WIP','C','A','AR','NS'];
var menu = $('<select>',{class:'sel'});

$.each(options,function(i,text){
    menu.append($('<option>',{text:text}));
});

menu.val(status).appendTo(this);
于 2012-08-10T18:03:43.247 回答
0

这是您可以执行的操作,以便在用户单击选择时选择要选择的存储值。

小提琴。

http://jsfiddle.net/TRCWh/

代码

<div id = "hello"></div>

var select = "A";
$('#hello').html($("<select/>", {
          class: 'sel',
        }).append($("<option/>", { text: "WIP" }))
          .append($("<option/>", { text: "C" }))
          .append($("<option/>", { text: "A" }))
          .append($("<option/>", { text: "AR" }))
          .append($("<option/>", { text: "NS" }))
                );

$(document).on("click",".sel",function(){
    $(this).val(select);
})

注意:我已经有一段时间忽略了公认的编码实践(有些人可能会说)。只是为了快速解决您的问题:)

于 2012-08-10T18:15:29.107 回答