我正在尝试使用通配符来获取 id 以“jander”开头的所有元素的 id。我试过 $('#jander*')
、$('#jander%')
但它不起作用..
我知道我可以使用元素的类来解决它,但也可以使用通配符?
<script type="text/javascript">
var prueba = [];
$('#jander').each(function () {
prueba.push($(this).attr('id'));
});
alert(prueba);
});
</script>
<div id="jander1"></div>
<div id="jander2"></div>
$("[id*=jander]")
将选择 ID 包含字符串 jander 的所有元素。
要获取以“jander”开头的所有元素,您应该使用:
$("[id^=jander]")
得到那些以“jander”结尾的
$("[id$=jander]")
另请参阅 JQuery documentation
由于标题建议使用通配符,您也可以使用它:
$(document).ready(function(){ console.log($('[id*=ander]')); });
这将选择 id
中任意位置的给定字符串。
尝试使用 jQuery 开头
选择器,'^=',例如
[id^="jander"]
我不得不问,你为什么不想使用类来做到这一点?
对于您可以使用的课程:
div[class^="jander"]
要从通配符匹配中获取 id:
$('[id^=pick_]').click( function(event) { // 在这里对 id 做一些事情: alert('Picked: '+ event.target.id.slice(5)); } ) ;
当你有一个更复杂的 id 字符串时,双引号是强制性的。
例如,如果您有这样的 id:id="2.2"
,则访问它的正确方法是:$('input[id="2.2"]')
出于安全原因,尽可能使用双引号。
$('input[name^="news"]').val('news here!')