我在更改靠近另一个元素的元素中的文本时遇到问题。该功能相当简单,但由于某种原因,我不能让这个文本更改起作用。
当我点击#dislike_text时,它变为空白(应该如此),但.like_text不会改变。请注意,还有一个类似post的功能(与此相同,但相反,可以正常工作)。
function postdislike(elm) {
var comment_id = $(elm).attr('href');
$('#stuff').load(// --function--
function (data) {
$('#dislike_text' + comment_id).html(""); //works fine
$(elm).closest('.like_text').html('Like'); //doesn't work
});
return false;
}
答案 0 :(得分:1)
closest
通过祖先元素上升并找到与选择器匹配的第一个元素。如果没有类like_text
的祖先元素,则不会选择任何元素。
我认为你并不是要删除一个祖先元素,因为这会删除#stuff
元素。因此,您需要使用jQuery的traversing functions以其他方式找到通往其他元素的方法。最有可能的方法是使用closest
来查找共同的祖先,然后使用find
来获取元素本身。例如:
$(elm).closest('div.someClass').find('.like_text').html('Like');