如何使用JavaScript选中类别复选框

时间:2018-04-19 作者:Zeth

我正在创建此链接,它向管理面板发送一个额外的参数,例如:

/wp-admin/post-new.php?post_type=CPT&msscategory=40
然后,我将一些javascript放入给定页面的队列中(作为操作添加到admin_footer):

$screen = get_current_screen();

if ( in_array( $screen->id, array( \'CPT\' ) ) && $screen->action == \'add\' ) {
  wp_enqueue_script( \'mark-default-category\', get_stylesheet_directory_uri() . \'/assets/js/custom.js\', array( \'jquery\' ) );
}
然后我想选中类别复选框id=39. 但我无法理解HTML。看起来是这样的:

<li id=\'category-39\'>
  <label class="selectit">
    <input value="39" type="checkbox" name="post_category[]" 
           id="in-category-39" /> 
    Page 1 (depth 0)
  </label>
  <ul class=\'children\'>
    <li id=\'category-40\' class="popular-category">
      <label class="selectit">
        <input value="40" type="checkbox" name="post_category[]" 
               id="in-category-40" /> 
        Page 2 (depth 1)
      </label>  
      <ul class=\'children\'>
        <li id=\'category-41\'>
          <label class="selectit">
            <input value="41" type="checkbox" name="post_category[]"
                   id="in-category-41" /> 
            Page 3 (depth 2)
          </label>
        </li>
        <li id=\'category-42\'>
          <label class="selectit">
            <input value="42" type="checkbox" name="post_category[]"
                   id="in-category-42" /> 
            Page 3 (depth 2)
          </label>
        </li>
        <li id=\'category-43\'>
          <label class="selectit">
            <input value="43" type="checkbox" name="post_category[]" 
                   id="in-category-43" /> 
            Page 4 (depth 2)
          </label>
        </li>
      </ul>
    </li>
  </ul>
可以看出,然后input-复选框没有调用属性(attr)或属性(prop)checked. 这是单击前的标签:

 <label class="selectit">
   <input value="43" type="checkbox" name="post_category[]" 
          id="in-category-43" /> 
   Page 4 (depth 2)
 </label>
这是单击后的一个:

 <label class="selectit">
   <input value="43" type="checkbox" name="post_category[]" 
          id="in-category-43">
     ::before
   </input> 
   Page 4 (depth 2)
 </label>
所以所发生的一切就是input-field不再自动关闭-但::before 已添加。

现在,-我如何使用jQuery做到这一点?

这是我最近的一次。

var finding_the_checkbox = jQuery(\'#category\' + just_the_category_ID ).find("label");
findind_the_checkbox.click()
。。。在阐述这一点时,我找到了解决方案。我将在下面发布(因为我在其他任何地方都找不到答案。互联网需要这个!

1 个回复
最合适的回答,由SO网友:Zeth 整理而成

This solved it:

jQuery(document).ready(function() {
  jQuery( \'#in-category-43\' ).prop(\'checked\', true);
});
结束

相关推荐

custom css for admin only

我需要为管理自定义CSS。所以,若用户并没有登录,或者除了管理员之外,其他任何人都有一个CSS,对于管理员来说,只有不同的CSS。我在函数中尝试了此代码。php:function wpa66834_role_admin_body_class( $classes ) { global $current_user; foreach( $current_user->roles as $role ) $classes .= \' role-\' . $