如何在具有相同id属性的所有元素上应用jquery?

时间:2010-10-27 16:44:50

标签: jquery

如何在具有相同id属性的所有元素上应用jquery?

我想在focus()具有相同ID的元素上应用blur()textarea函数吗?

8 个答案:

答案 0 :(得分:18)

正确的答案是

$("[id=yourID]").doSomething()

用于任何代码,如

<textarea id="yourID" />
<img id="yourID" />
<div id="yourID" />

是的,我知道,这不是有效的HTML,但请注意我们中产阶级开发人员经常不得不处理“更好”的开发人员所犯的问题。 以Microsoft SharePoint为例,其中多个ID非常常见。我们无法告诉客户微软做得不好,所以我们无法帮助他们。我们告诉他们微软做得不好所以我们必须帮助他们; - )

答案 1 :(得分:14)

首先,您不应该有多个具有相同ID的元素。

但是,您可以使用CSS类来执行此操作:

<div>
 <textarea class="Text"></textarea>
 <textarea class="Text"></textarea>
 <textarea class="Text"></textarea>
</div>

<script>
    $(".Text").focus();
    $(".Text").blur();
</script>

答案 2 :(得分:2)

你不能拥有多个具有相同ID的元素,你应该使用类,然后像这样访问它们。

$(".classname").focus()

如果你想专注于一个ID使用

$("#idname").focus()

答案 3 :(得分:1)

最好不要在同一页面上对2个元素使用相同的id。设置textarea节点的其他形式可以是

$('textarea').blur()   // note it sets all textarea elements on the page

$('#content textarea, #comment-area textarea').blur()

或者如果为这些textarea节点创建一个类,也可以使用它。

答案 4 :(得分:0)

您不能/不应该有多个具有相同ID的元素。您可以使用类选择器,但我肯定会首先解决ID问题。

答案 5 :(得分:0)

你不能拥有多个具有相同id的元素,不仅它是无效的html,而且如果你用jquery对它进行了追踪,它只会影响第一个。你应该使用一个类

$('.class_name').blur();

答案 6 :(得分:0)

如果你想使用`$(&#34; #yourID&#34;),这很简单。click(function(){});

答案 7 :(得分:0)

使用jQuery委托

语法

jQuery('body').delegate("#your-id","click",function(e){ // do code here });