代码之家  ›  专栏  ›  技术社区  ›  Mohamad

如何将HTML属性的值传递给jQuery函数?

  •  0
  • Mohamad  · 技术社区  · 14 年前

    我想将HTML标记的值传递给jQuery警报框,但是我没有得到任何运气。我基本上想把“1”或“2”传递到警报框。我总是在警报框中“未定义”。

    <button class="up" value="1">
    <button class="down" value="2">
    
    $(document).ready(function(){
        $(".up,.down").click(function(){
            alert(this.value);
       });
    )};
    

    我这样做是为了一个ajax函数,但我需要确保我可以首先传递值,所以警报框是用于调试的。

    3 回复  |  直到 14 年前
        1
  •  1
  •   Nick Craver    14 年前

    因为一个按钮的值是 之间 这个 <button></button> 在中标记 IE7标准 ,为了安全起见,您可以使用 data- 属性,如下所示:

    <button class="up" data-value="1">Something</button>
    

    使用匹配脚本:

    $(document).ready(function(){
        $(".up,.down").click(function(){
            alert($(this).data("value"));
       });
    )};
    

    You can test it here .

        2
  •  4
  •   n8wrl    14 年前
    alert($(this).attr("value"));
    
        3
  •  2
  •   Josh Stodola    14 年前

    this.value 工作很好(我 tested it 在IE8、FF3和Chrome中)。不知道你怎么可能看到“未定义”。关闭document.ready处理程序时确实有语法错误。应该是 }); 而不是 )};

    编辑:我相信Nick Craver对IE7的错误,我认为除了在标记中使用自定义属性外,您还可以执行以下操作。。。

    $(".up,.down").click(function(){
      var $this = $(this);
      var oldText = $this.text();
      $this.text('');
      var val = this.value;
      $this.text(oldText);
      alert(val);
    });
    

    Test it here 如果你有IE7请!