Javascript jQuery不会设置为选中

Javascript jQuery不会设置为选中,javascript,jquery,Javascript,Jquery,我有一个恼人的问题,我有一个jQuery选择一个选择选项列表的各种选项。我想将SELECTED=SELECTED属性设置为强制将第一项以外的内容作为默认项 看起来很基本,如果我设置选项标签的其他特性,它就可以正常工作。例如: $(this).addClass ('TEST'); 通过将测试类添加到应该是默认选项的内容中,可以实现预期的效果。我还可以做以下工作: $(this).attr('annoying', "SELECTED"); $(this).attr('SELECTED', "SE

我有一个恼人的问题,我有一个jQuery选择一个选择选项列表的各种选项。我想将SELECTED=SELECTED属性设置为强制将第一项以外的内容作为默认项

看起来很基本,如果我设置选项标签的其他特性,它就可以正常工作。例如:

$(this).addClass ('TEST');
通过将测试类添加到应该是默认选项的内容中,可以实现预期的效果。我还可以做以下工作:

$(this).attr('annoying', "SELECTED");
$(this).attr('SELECTED', "SELECTED");
这将添加具有选定值的属性。不幸的是,如果我做了以下事情:

$(this).attr('annoying', "SELECTED");
$(this).attr('SELECTED', "SELECTED");
它完全忽略了这一点。如果我进入Chrome的调试器并手动输入,它会工作,但不会从我的JS文件:^

有什么想法吗

更新 到目前为止,这是一个很好的建议,但由于没有任何效果,我怀疑还有其他问题。为了提供进一步的背景。。。这是一个Wordpress站点,我让QuickEdit函数在分类法的自定义属性中显示正确的选项。对于那些不了解Wordpress的人来说,在这个阶段,谁知道可能并不重要

以下是完整的代码:

jQuery(document).ready(
function ($) {
    $('.editinline').on ('click', 
    function () {
        var $data_ref = $(this).closest('tr');
        $('.bespoke-item.quick-edit').each (
            function () {
                var col_name = $(this).attr('name');
                var col_value = $data_ref.find ('.' + col_name).text();
                $(this).val(col_value); // this will work for non-enumerated widgets
                if ( $(this).is( "select" ) ) {
                    selected = false; // used as a flag on whether the SELECTED value has been found
                    options = $(this).find ('.select-option');
                    options.each( 
                        function () {
                            if ( $(this).attr('value') == col_value ) {
                                $(this).addClass ('TEST');
                                selected = true;
                                $(this).attr('SELECTED', "SELECTED");
                                this.selected = 'SELECTED';
                            } 
                        }
                    );
                    if ( !selected ) {
                        // The value of the did not match any of the selections (this likely means it wasn't set at all)
                        // In this case revert to the "static-default" setting
                        options.each( 
                            function () {
                                if ( $(this).attr('static-default') ) {
                                    $(this).attr ('SELECTED' , 'SELECTED');
                                    alert ("Found value in static default " + $(this).val());
                                    selected = true;
                                } else {
                                    $(this).removeAttr ( 'SELECTED' );
                                }
                            }
                        );
                    }
                }

            }
        );
    }
);

})

对于你们所有人来说,三个选项都假设这是问题中的选项元素,就像在你们的问题中一样:

如果您使用的是jQuery的最新副本,还需要注意的是,所选内容应该是小写,而不是大写:

$(this).prop('selected', true);
有时直接使用DOM更简单:

this.selected = true;
当然,也可以在select元素上使用val,将其设置为要选择的选项的值

$("selector for the select element").val($(this).val());
// or better (as `value` is entirely reliable on option elements):
$("selector for the select element").val(this.value);

|

三个选项都假设这是问题中的选项元素,就像您的问题中的一样:

如果您使用的是jQuery的最新副本,还需要注意的是,所选内容应该是小写,而不是大写:

$(this).prop('selected', true);
有时直接使用DOM更简单:

this.selected = true;
当然,也可以在select元素上使用val,将其设置为要选择的选项的值

$("selector for the select element").val($(this).val());
// or better (as `value` is entirely reliable on option elements):
$("selector for the select element").val(this.value);

|

你能发布一个小的、独立的例子来说明这个问题吗?这样做总是好得多,这样人们就不会浪费时间猜测发生了什么。因为当你创建一个时,至少有80%的时间你首先会明白为什么你会遇到麻烦…这是不是很难工作?请参见jQuery.prop。attr不适合jQuery 1.6+,因为从技术上讲,selected不是属性。我认为selected是属性,而不是属性。尝试使用prop而不是attr。你能发布一个小的、自包含的示例来演示这个问题吗?这样做总是好得多,这样人们就不会浪费时间猜测发生了什么。因为当你创建一个时,至少有80%的时间你首先会明白为什么你会遇到麻烦…这是不是很难工作?请参见jQuery.prop。attr不适合jQuery 1.6+,因为从技术上讲,selected不是属性。我认为selected是属性,而不是属性。尝试使用道具而不是attr。非常好的建议,当我看到你的道具对attr的评论时,我确信这会解决它。可悲的是,这些选项都不起作用,这让我觉得还有别的东西在起作用。@肯:……这让我觉得确实有别的东西在起作用。所以我们需要一个完整的例子-非常好的建议,当我看到你的道具对attr的评论时,我确信这会解决它。可悲的是,这些选项都不起作用,这让我觉得还有别的东西在起作用。@肯:……这让我觉得确实有别的东西在起作用。所以我们需要一个完整的例子-