1

我有一个包含两种形式的网页......都在一个<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 
}; 
}); 

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

谢谢。

4

3 回答 3

5

:contains寻找文本内容。

您的选择器可以更简单:

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

...这意味着“inputtype "submit"value 属性 "Create TEST"”开头。

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

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

当然,由于您已经使用上面的代码拥有了按钮,您可能不再需要为它们分配值,您可以在上面的代码中立即使用 sid来执行您稍后要对它们执行的任何操作。id但是,如果您的用例需要ids,那么上面的就可以了。


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

于 2013-10-03T13:36:22.287 回答
0

您可以使用 $( " :submit ").functionname() 获取表单上的所有提交类型按钮

于 2013-10-03T13:44:21.680 回答
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 ;
           }; 
});

工作演示

于 2013-10-03T13:45:35.743 回答