Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 滚动到使用两个父元素的元素,一个具有id,另一个具有类_Javascript_Jquery - Fatal编程技术网

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
和class
com
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。这是不正确的。更多

如果id
somewebsite.com
是唯一的,只需使用

$("#somewebsite\\.com")

试试
。#somewebsite\.com.placementName…
我似乎记得你必须在idIt中逃出一个句号,它需要2\\n所以:
#somewebsite\.com
ID可以在其中有一个句号(点),但它们是problematic@DarrenSweeney是的,但是如果您直接在jquery选择器中使用它们。选择器解释为在点后面的类。因此,您不能直接使用它进行选择。我不知道OP不能更改
id
,因为如果可能,最简单的方法就是更改id。是的,正如我的评论所说,你可以逃过这段时间,例如
#unique\.id
我从来没有说过你发布了错误的答案。我们当然可以逃走。