jquery - 每个/单击功能不起作用

发布于 2024-10-09 06:35:06 字数 1329 浏览 7 评论 0原文

编辑:这有效,但不确定为什么?

  $('button').each(function() {
    $(this).bind(
        "click",
        function() {
            alert($(this).val());
        });
  });

我不确定为什么这不起作用...现在,我只是尝试输出带有按钮值的警报,但它是无法在我的页面上工作。我在 Firebug 中没有收到任何控制台错误,也看不到任何阻止其工作的内容。

我的 HTML 看起来像这样:

<table id="addressbooktable">
<thead>
    <tr>
        <th>Name</th>
        <th>Action</th>
    </tr>
</thead>

<tbody>
    <tr>
        <td>7892870</td>
        <td><button id="button-20" class="custom-action" value="XY89" name="info">Click</button></td>
    </tr>

    <tr>
        <td>9382098</td>
        <td><button id="button-21" class="custom-action" value="XY544" name="info">Click</button></td>
    </tr>

    <tr>
        <td>3493900</td>
        <td><button id="button-22" class="custom-action" value="XY231" name="info">Click</button></td>
    </tr>
</tbody>
</table>

代码看起来像这样:

  $('button').each(function() {
    $(this).click(function() {
      alert($(this).val());
    }
  });

但是,单击它根本没有任何作用?是我使用方式不对吗?

EDIT: this works, but not sure why?

  $('button').each(function() {
    $(this).bind(
        "click",
        function() {
            alert($(this).val());
        });
  });

I'm not sure why this isn't working... Right now, I'm just trying to output an alert with the button value, but it's not working on my page. I don't get any console errors in Firebug and can't see anything that would prevent it from working.

My HTML looks like this:

<table id="addressbooktable">
<thead>
    <tr>
        <th>Name</th>
        <th>Action</th>
    </tr>
</thead>

<tbody>
    <tr>
        <td>7892870</td>
        <td><button id="button-20" class="custom-action" value="XY89" name="info">Click</button></td>
    </tr>

    <tr>
        <td>9382098</td>
        <td><button id="button-21" class="custom-action" value="XY544" name="info">Click</button></td>
    </tr>

    <tr>
        <td>3493900</td>
        <td><button id="button-22" class="custom-action" value="XY231" name="info">Click</button></td>
    </tr>
</tbody>
</table>

And the code looks like this:

  $('button').each(function() {
    $(this).click(function() {
      alert($(this).val());
    }
  });

But, clicking on it does nothing at all? Am I using it incorrectly?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

瘫痪情歌 2024-10-16 06:35:06

您可以将所有按钮与这样的单击事件绑定,无需循环它们

$(function(){
    $("button").click(function() {
        alert($(this).attr("value"));
    });
});

但更精确的选择器可能是:

$(function(){
    $("button[id^='button-'").click(function() {
        alert($(this).attr("value"));
    });
});

You can bind all buttons with a click event like this, there is no need to loop through them

$(function(){
    $("button").click(function() {
        alert($(this).attr("value"));
    });
});

But a more precise selector might be:

$(function(){
    $("button[id^='button-'").click(function() {
        alert($(this).attr("value"));
    });
});
花辞树 2024-10-16 06:35:06

您缺少 );,并确保您的代码位于 document.ready 处理程序中,如下所示:

$(function() {
  $('button').each(function() {
    $(this).click(function() {
      alert($(this).val());
    }); //missing ); here!
  });
});

这样它才会运行,直到这些

$(function() {
  $('button').click(function() {
      alert($(this).val());
  });
});

You're missing a );, and make sure your code is in a document.ready handler, like this:

$(function() {
  $('button').each(function() {
    $(this).click(function() {
      alert($(this).val());
    }); //missing ); here!
  });
});

This way it won't run until those <button> elements are in the DOM for $('button') to find them. Also, you can run .click() on a set of elements, like this:

$(function() {
  $('button').click(function() {
      alert($(this).val());
  });
});
美人迟暮 2024-10-16 06:35:06

您缺少)

$('button').each(function(){
            $(this).click(function(){
                alert($(this).val());
            });
        });

You are missing ):

$('button').each(function(){
            $(this).click(function(){
                alert($(this).val());
            });
        });
各自安好 2024-10-16 06:35:06

是的。试试这个:

$('button').click(function() {
      alert($(this).val());
  });

您可能还需要其中的 return false.preventDefault()

Yup. Try this:

$('button').click(function() {
      alert($(this).val());
  });

You may also want a return false or .preventDefault() in there.

初相遇 2024-10-16 06:35:06

您不能对按钮使用 .val() 方法。您可以使用 .attr() 来获取值属性。如果您使用自定义属性,请使用 data-attribute

尝试

$("button").click(function(){
    alert($(this).attr("value"));
});

You cannot use .val() method for button. You can use .attr() to get the value attribute. If you are using custom attributes then use data-attribute.

Try

$("button").click(function(){
    alert($(this).attr("value"));
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文