我知道在StackOverflow上有一些关于在jQuery中使用正则表达式的问题和答案,但它们看起来有点复杂。
我不明白为什么这个不起作用:
$("div").click(function () {
$(this).parent().className.replace(/photo-\w*/, 'photo-2');
});这似乎是一个简单的操作:将被单击的div的父级(它可能有一个类似于‘photo-5’的类)替换为'photo-2‘。
有人能解释一下为什么上面的代码不能工作吗,并提供最简单/最干净的方法来做到这一点?谢谢
发布于 2011-07-20 01:52:26
$(this).parent()会给你一个jQuery对象。尝尝这个
$("div").click(function () {
$(this).parent()[0].className = $(this).parent()[0].className.replace(/photo-\w*/, 'photo-2');
});发布于 2011-07-20 01:59:17
Replace需要分配到某个地方,而不是仅仅执行(否则它不会影响实际值)。也就是说,试试这个:
$('div').click(function(){
var $p = $(this).parent().get(0);
$p.className = $p.className.replace(/photo-\w*/, 'photo-2');
});Working on my end。
https://stackoverflow.com/questions/6751666
复制相似问题