我有一个网页,其中包含两个表单...都在<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()以确保我理解它应该如何/应该返回...
感谢。
答案 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 selector,attribute-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 ;
};
});