找到一个按钮并通过jquery / javascript分配一个id

时间:2013-10-03 13:34:20

标签: javascript jquery html

我有一个网页,其中包含两个表单...都在<DL>

<dl>
<form action="" method="POST" style="display:inline-block;">
    <dl><dt></dt><dd><input class="submit" type="submit" value="Create TEST" style="width: 15em;"></dd></dl>
</form>
<form action="" method="POST" style="display:inline-block;">
    <dl><dt></dt><dd><input class="submit" type="submit" value="Create TEST2" style="width: 15em;"></dd></dl>
</form>    
</dl>

我需要找到两个按钮并为它们分配ID。

这是我到目前为止所拥有的:

//find the two create buttons and assign ids
$('body FORM:contains("Create TEST")').contents().each(function () {
var exp = /Create TEST/;        
if (this.nodeValue && exp.test(this.nodeValue)) {                      
    var $createoutrule = this;
    $createoutrule.attr('id',"id123");
    return 
}; 
}); 

但它不起作用......你能告诉我我做错了什么吗? 我要google .contents()以确保我理解它应该如何/应该返回...

感谢。

3 个答案:

答案 0 :(得分:5)

:contains查找 textual 内容。

您的选择器可以更简单:

$('input[type=submit][value^="Create TEST"]')...

...表示“input type "submit",其值属性 "Create TEST"开头。”

向其添加id值(请注意,它们必须是两个不同的 id值,因为id s 必须在页面上是唯一的),然后:

$('input[type=submit][value^="Create TEST"]').each(function(index) {
    this.id = "id" + index; // Will be "id0" then "id1"
});

当然,由于您已经使用上述代码的按钮,您可能不再需要为它们分配id值,您可以稍后使用{{1执行您将要执行的任何操作马上就在上面的代码中。但是如果你的用例需要id,那么上面就可以了。


如果这些值只是占位符,则适用相同的一般原则:如果开头相同的文本,则可以使用上面的attribute-starts-with selector;如果没有,还有attribute-ends-with selectorattribute-contains selector,...

答案 1 :(得分:0)

您可以使用$(“:submit”)。functionname()

获取表单上的所有提交类型按钮

答案 2 :(得分:0)

试试这个,

$('input[type="submit"]').each(function () {
          var exp = /Create TEST/;   

           if (exp.test(this.value)) {                      

                     $(this).attr('id',"id123");//put diffrent id because id should be unique
                     return ;
           }; 
});

Working Demo