我有以下功能:
$('#topic').change(function()
它作用于名为#topic的ID。我想对名为
的ID进行此操作#topic_1 or #topic_2 or #topic_3 etc.
使用通配符使用jQuery有一种简单的方法吗?另外,我如何提取数字1,2或3,并找出标记为key_1,key_2或key_3的另一个元素的值。我希望这对你有意义。
对不起,这是一个基本问题,但我是jQuery的新手
答案 0 :(得分:5)
如果您愿意,可以使用id
(以下更多选项),使用"attribute starts with"选择器:
$('[id^="topic"]').change(function() { ... });
该选择器将匹配以“topic”开头的任何id
值。一定要把参数(“主题”)放在引号中,它是(现在)必需的。
如果您有这些的简短列表,您可以选择直接列出它们:
$('#topic1, #topic2, #topic3').change(function() { ... });
或者您可以选择他们共同的其他特征。热门选择:
他们的class
,使用class selector:
$('.theClass').change(...);
他们在DOM中的位置。例如,如果您想在表单中的所有字段上观看change
事件,您可以从表单开始并使用descendant selector,也许使用:input
之类的限定符(匹配input
,select
和textarea
元素),如下所示:
$('#formId :input').change(...);
他们使用"attribute equals" selector,"attribute contains"选择器等共享的其他一些属性
正如您所看到的,您拥有a lot to choose from,而不仅仅是ID和类。请注意,在大多数浏览器中,类选择器将是最快的,但这仅适用于非常复杂的页面,或者当您查找选择器 lot 时。一如既往地优化是否/何时发现问题。
答案 1 :(得分:1)
为什么不使用类选择器呢?为所有元素提供一个名为“topic”的CSS类,并按如下方式修改代码:
$('.topic').change(function() { });
答案 2 :(得分:1)
喜欢这个
$('input[id^="topic"]').val('news here!');
$(input[id^="topic"]).change(function(){
//Do something
});
答案 3 :(得分:0)
使用class属性..
$('.topic').change(function() { });
答案 4 :(得分:0)
使用类选择器是一种优先的方法。但是,对于任意名称,您还可以实现类似于此的内容:
for (i=0;i<blahblah;i++){
$("#topic_"+i).change(function() {}); }