jQuery"选择":与选择'冲突?选项标签中的属性

时间:2014-04-22 10:36:34

标签: javascript jquery jquery-chosen

由于“冲突”问题导致我的jQuery代码段无法正常运行使用jQuery插件'chosen'。如果重要的话,我会使用Wordpress。

我想使用

在多个selected代码中设置<option>属性
jQuery( document ).ready(function() {
var arr = ["1", "2"];
jQuery("#location option").each(function () {
    if (jQuery.inArray(jQuery(this).val(), arr) != -1) {
        jQuery(this).prop('selected', true);
    };
});
});

html输出

 <select name="location[]" multiple="multiple" id="location" class="postform" style="display: none;">
        <option value="-1">Select a location</option>
        <option class="level-0" value="1">Location A</option>
        <option class="level-0" value="2">Location B</option>
        <option class="level-0" value="3">Location C</option>
    </select>

我觉得我在这里提供的细节很少,无法解决问题,但我不确定在此发布哪些其他代码。

当禁用(非入队)chosen插件(chosen.jquery.min.js)时,一切正常。不过,我希望chosen插件能够正常工作。

1 个答案:

答案 0 :(得分:0)

您的代码 工作,虽然它是您调用它的顺序 - 可能会有点磕磕绊绊。正如此Fiddle所述。

的functions.php

<?php 
    /**
     *  Load:
     *    css; chosen; jquery.
    **/
    function wordpress_scripts() {

        wp_enqueue_style( 
                   'chosen.css', 
                   get_stylesheet_uri() 
                 );

        wp_enqueue_script( 
                   'chosen.js', 
                   get_template_directory_uri() . '/js/chosen.js', 
                   array('jquery')
                 );

        wp_enqueue_script( 
                   'myscript.js', 
                   get_template_directory_uri() . '/js/myscript.js', 
                   array('jquery')
                 );
    }

    add_action( 'wp_enqueue_scripts', 'wordpress_scripts' );
?>

myscript.js

<script>
    jQuery(document).ready(function(){
         var arr = ["1", "2"];
         jQuery("#location option").each(function () {
             if (jQuery.inArray(jQuery(this).val(), arr) != -1) {
                 jQuery(this).prop('selected', true);
             };
         });

         if ( typeof jQuery.fn.chosen !== 'undefined' )
             jQuery("#location").chosen();
    });
</script>