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

dot*_*dot 1 html javascript jquery

我有一个网页,其中包含两个表格...... <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>
Run Code Online (Sandbox Code Playgroud)

我需要找到两个按钮并为它们分配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 
}; 
}); 
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

T.J*_*der 5

:contains寻找文本内容.

您的选择器可以更简单:

$('input[type=submit][value^="Create TEST"]')...
Run Code Online (Sandbox Code Playgroud)

......这意味着"一个inputtype "submit"其值属性开头 "Create TEST" ".

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

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

当然,由于你已经使用了上面代码的按钮,你可能不再需要为id它们赋值了,你可以随后id在上面的代码中使用s 做任何你将要做的事情.但是如果你的用例需要ids,上面就会这样做.


如果这些值只是占位符,则适用相同的一般原则:如果两者都相同的文本开头,则可以使用上面的attribute-starts-with选择器 ; 如果没有,还有attribute-ends-with选择器,属性包含选择器,......