Javascript 滚动到使用两个父元素的元素,一个具有id,另一个具有类
我正在使用这行代码尝试通过标题滚动到元素:Javascript 滚动到使用两个父元素的元素,一个具有id,另一个具有类,javascript,jquery,Javascript,Jquery,我正在使用这行代码尝试通过标题滚动到元素: $("#wrapper").animate({scrollTop: $(".placementName[title='" + placementName + "']").offset().top - 10}, "slow"); 但问题是,我的HTML代码中几乎没有具有相同标题和相同类的对象placementName,如何为规则添加id? id是somewebsite.com,因此我尝试了以下方法: $("#wrapper").animate({s
$("#wrapper").animate({scrollTop: $(".placementName[title='" + placementName + "']").offset().top - 10}, "slow");
但问题是,我的HTML代码中几乎没有具有相同标题和相同类的对象placementName
,如何为规则添加id?
id是somewebsite.com
,因此我尝试了以下方法:
$("#wrapper").animate({scrollTop:$("#somewebsite.com.placementName[title='" + placementName + "']").offset().top - 10}, "slow");
但它不起作用…你知道吗?thx
somewebsite.com
不是有效的id。请更改它,然后它就可以工作了。
执行此操作时,:$(“#somewebsite.com.placementName[title=”+placementName+“])
然后jquery查找id为somewebsite
和classcom
placementName的dom,您可以执行以下操作:
$("#wrapper").animate({scrollTop:$("#somewebsite\\.com").offset().top - 10}, "slow");
因为id应该是唯一的,并且是指定元素所需的全部。id中的点可能有问题,但转义该点应该有效
另请参见:如果id中有点,则可以通过检查属性来访问,如下所示:
$("#wrapper").animate({scrollTop:$("[id='somewebsite.com'].placementName[title='" + placementName + "']").offset().top - 10}, "slow");
无论如何,由于id必须是唯一的,检查id就足够了:
$("#wrapper").animate({scrollTop:$("[id='somewebsite.com']").offset().top - 10}, "slow");
您需要的选择器是
$("#somewebsite\\.com.placementName[title='" + placementName + "']")
这是因为您需要转义
jquery读取$(“#somewebsite.com.placementName”)
作为id:#somewebsite
和类:.com
.placementName
有人在这里写道,somewebsite.com
是无效的id。这是不正确的。更多
如果idsomewebsite.com
是唯一的,只需使用
$("#somewebsite\\.com")
试试
。#somewebsite\.com.placementName…
我似乎记得你必须在idIt中逃出一个句号,它需要2\\n所以:#somewebsite\.com
ID可以在其中有一个句号(点),但它们是problematic@DarrenSweeney是的,但是如果您直接在jquery选择器中使用它们。选择器解释为在点后面的类。因此,您不能直接使用它进行选择。我不知道OP不能更改id
,因为如果可能,最简单的方法就是更改id。是的,正如我的评论所说,你可以逃过这段时间,例如#unique\.id
我从来没有说过你发布了错误的答案。我们当然可以逃走。