jquery - 编写一个新的 jQuery 插件

标签 jquery

<table class="data" border="1">
    <tbody>
        <tr>
        </tr>
            <td><input type="checkbox" /></td>

        <tr>
            <td><input type="checkbox" /></td>

        </tr>
        <tr>
            <td><input type="checkbox" /></td>
        </tr>        
    </tbody>
</table>

遍历每个 tr 时元素,检查是否给定 <tr>元素有一个选中的复选框,如果是,则添加新类。如果没有,请将其删除。

jQuery.fn.deleteMark = function() {

   this.each(function() {
        alert( $('input:checkbox',this) );
        if ($('checkbox',this).is(':checked')){
            $(this).addClass("delemarked");
        }
        else{
            $(this).removeClass("delemarked");
        }
   })
};

现在我想为每个 tr 添加一个类已检查:

function refresh(){
    $('.data tbody tr').each(function() {
        $(this).deleteMark();
    });        
}

遗憾的是这对我不起作用。我将不胜感激任何帮助。

最佳答案

而不是 checkbox ,您需要:checkbox对于选择器,因为没有 <checkbox>元素,像这样:

$(':checkbox',this)

尽管您可以使用.toggleClass("className", bool)来缩短您的整体方法,像这样:

jQuery.fn.deleteMark = function() {
  return this.each(function() {
    $(this).toggleClass("delemarked", $(this).find(":checkbox:checked").length > 0);
  });
};

此外,不需要 .each() 调用你的插件,这样就可以了:

$('.data tbody tr').deleteMark();

You can test all of the change above here .

关于jquery - 编写一个新的 jQuery 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3855039/

相关文章:

jquery - lint 警告 val() 和 text() 被错误调用

javascript - html 美化 json 忽略新行字符

javascript - 变量范围或选择器问题

javascript - 范围 0-100 使用 jQuery inputmask 插件

javascript - 附加奇怪的行为

javascript - jQuery 获取视口(viewport)大小的高度但是 -(n)px

javascript - 有没有像 facebook 这样的弹出照片查看器库?

javascript - jQuery:样式悬停在 parents() 和 children() 上

php - 通过数据表发布到 php 文件并显示结果

javascript - Angular JS 1.2 - 使用 ng-show 动画化子元素