获取类jquery的值

时间:2015-06-19 12:12:48

标签: jquery

我是jquery的初学者,所以我的问题是

<?php
for($i=0;$i<3;$i++)
{
?>
<form>
<input type="text" class="s" value="v<?php echo $i; ?>" />
<input type="button" value="OK" onclick="test();" />
</form>
<?php
}
?>


<script language="javascript">
function test(){
var a= $(".s").val();
alert(a);
}
</script>

我想获得单击按钮的文本的值,但如果我单击第一个或第二个或最后一个按钮,它会显示我&#39; v0&#39;对全部。 所以我想拥有&#39; V0&#39;如果我点击第一个按钮,&#39; v1&#39;第二个&#39; v3&#39;最后一次。

我想你会明白我想解释的是因为我再次成为英语初学者

4 个答案:

答案 0 :(得分:2)

因为您正在使用它使用jQuery绑定事件。您可以使用它将按钮和绑定事件添加到CSS类中。

HTML

<form>
<input type="text" class="s" value="v<?php echo $i; ?>" />
<input class="btn" type="button" value="OK" />
</form>

脚本

$(function() {
    //Bind event using btn class added to button
    $('.btn').click(function(){
        //Use .prev() to find the prev input
        var a = $(this).prev(".s").val();
        alert(a);
    });
});

Refrences

  1. Document ready handler

      

    指定在DOM完全加载时要执行的函数。

  2. Class Selector (“.class”)

  3.   

    选择具有给定类的所有元素。

    1. .click()
    2.   

      将事件处理程序绑定到&#34;单击&#34; JavaScript事件,或在元素上触发该事件。

      1. .prev()

          

        获取匹配元素集中每个元素的前一个兄弟,可选择由选择器过滤。

      2.   

答案 1 :(得分:0)

当你得到上述html时,它将如下所示:

<form>
    <input type="text" class="s" value="v0" />
    <input type="button" value="OK" onclick="test();" />
</form>

<form>
    <input type="text" class="s" value="v1" />
    <input type="button" value="OK" onclick="test();" />
</form>

<form>
    <input type="text" class="s" value="v2" />
    <input type="button" value="OK" onclick="test();" />
</form>

您可以为每个按钮添加class,如下所示,从按钮中移除onclick

<?php
    for($i=0;$i<3;$i++)
    {
    ?>
       <form>
            <input type="text" class="s" value="v<?php echo $i; ?>" />
            <input type="button" value="OK" class="btnGetVal" />
       </form>
<?php
    }
?>

并编写一个js eventlistener,如下所示:

$('.btnGetVal').on('click',function(){
    var a=$(this).prev('input').val();
    alert(a);
});

答案 2 :(得分:0)

$("button").on("click", function() {
  alert($(this).parent().find(".s").val());
});

答案 3 :(得分:0)

您正在将“正常”javascript处理与jquery处理混合。 要做你想做的事,你不需要jquery,但你可以用普通的javascript来完成。

您需要做的是在页面开头定义程序 然后在每个按钮中单击指定要操作的元素。

我会告诉你页面应该生成什么。 由你来编写生成它的php语句。

请记住,对于您的第一次实验,您总是可以写下来 带有扩展名.html的纯文本文件中的页面文本,并将其加载到浏览器中 只有在它工作之后你才能想到通过php生成它。

这是你应该生成的php: (不需要表单声明)

<html>
<head>
<script>
  function test(elem) {
      alert(elem.value);
  }
</script>
</head>
<body>

<form>
<input type="text" name="e1" value="v0" />
<input type="button" value="OK" onclick="test(e1);" /> <br>
<input type="text" name="e2" value="v1" />
<input type="button" value="OK" onclick="test(e2);" /> <br>
<input type="text" name="e3" value="v2" />
<input type="button" value="OK" onclick="test(e3);" /> <br>
</form>

</body>
</html>

通过这种方式,每个输入按钮都与一个调用相同的函数“test”相关联,但是带有一个 不同的参数(相关的入口元素)

如果你想真正使用jquery,首先你必须下载它,把它放在php文件的同一目录中, 将其重命名为jquery.js并将其包含在页面标题中,如下所示。

有许多方法可以实现您想要的世界程序员。 在此示例中,以下脚本以这种方式工作:

$(":button").click(function() {
  alert ($(this).prev().val());
});

每个按钮都链接到一个未命名的功能。 在此函数中,“$ this”关键字引用一个jquery对象,该对象表示被单击的按钮。 prev()调用在文档流中返回其前面的元素,即entry元素 在它的左边。 最后,val()语句返回其值,并显示Alert。

这里我再次只展示你必须生成的内容: 将它写在html文件上并在尝试通过php生成之前对其进行测试。

<html>
<head>
<script type="text/javascript" language="javascript" src="jquery.js"></script>
</head>
<body>

<form>
<input type="text" value="v0" />
<input type="button" value="OK"" /> <br>
<input type="text" value="v1" />
<input type="button" value="OK" /> <br>
<input type="text" value="v2" />
<input type="button" value="OK" /> <br>
</form>

<script>
  $(":button").click(function() {
    alert ($(this).prev().val());
  });
</script>

</body>
</html>

祝你好运 莫里吉奥。