如何查找最接近具有特定文本值的按钮

时间:2013-09-02 20:19:33

标签: jquery html

我有一个包含多个表单的网页。 我正在尝试找到其中包含“添加”按钮的表单,然后为表单分配一个id。 然后我需要在这个命名形式中找到一个元素......一个输入元素,并为其赋值。

所以,例如,我有以下测试HTML:

<H1>Add A Call Route</H1><DL>
<form action="myapp/controller/addcallroute" method="POST">

<input class=" text" type="text"  name="contact_details"  value=""  id="contact_details" >

<input class=" hidden" type="hidden"  name="rule_id"  value=""  id="rule_id" >


<input class="submit" type="submit" name="submit" value="Add">

</FORM>

这是我试图用来查找正确表单的代码..并为其分配一个ID:

    var $callroute_form = $(":contains('Add')").closest("form");
    $callroute_form.attr('id',"callroute_form");        

当我在控制台中调试并尝试查看$(“#callroute_form”)的值是什么时,我只是得到“[]”。

最终,我需要做的是为“rule_id”字段赋值。但我有多个形式的多个rule_id字段... 或者,我想我很好地尝试寻找“添加”按钮,并填充最接近它的“rule_id”..?

感谢。

3 个答案:

答案 0 :(得分:2)

:contains选择器不适合此处,因为它会搜索元素内部文本,而不是值。

尝试Attribute Equals Selector

var $callroute_form = $("input[value='Add']").closest("form");

来自:contains文档:

  

包含选择器

     

说明:选择包含指定文字的所有元素。

答案 1 :(得分:1)

按照您解释的方式查找表单并为其添加ID:

// first method:
$('input[value="Add"]').parent().attr('id',"callroute_form");

// second method:
$('input[value="Add"]').closest('form').attr('id',"callroute_form");

要查找此表单中的元素并编辑值:

$('#callroute_form').find('input[name"rule_id"]').val('newvalue');

答案 2 :(得分:0)

选择所有表单并根据输入按钮过滤表单。现在,做你想做的任何表格。

$('form').filter( function() {
  return $(this).find("input[value='Add']").length == 1;
}).attr('id', 'callroute_form' )';