此语句将查找div #content-company
,并在找到它时加载适当的数据。然而,我的问题是:
在这种情况下,我必须使用一个滑块,我不能将其重命名为与div相同的滑块,所以在这种情况中,我有一个额外的名为.sides 的滑块
我通常会这样做:
// JavaScript Document
$(function(){
$('.tileSB').click(function(e){
e.preventDefault();
var url = $(this).attr('href') + ' #' + $(this).attr('data-target');
$('#content-company, .slides').load(url);
});
});
但这只是覆盖了与div和slides类相关的内容,所以您可以同时使用相同的名称,我不希望这样。
有人能解释一下我是怎么得到这个的吗?:
// JavaScript Document
$(function(){
$('.tileSB').click(function(e){
e.preventDefault();
var url = $(this).attr('href') + ' #' + $(this).attr('data-target');
$('#content-company OR .slides').load(url);
});
});
提前感谢
您可以检查#content-company
元素是否存在。如果没有,您可以使用.slides
。类似这样的东西:
$('.tileSB').click(function(e){
e.preventDefault();
var url = $(this).attr('href') + ' #' + $(this).attr('data-target');
var $target = $('#content-company');
if (!$target.length)
$target = $('.slides');
$target.load(url);
});
您可以使用? :
(三元运算符(。下面的代码将使用#content-company
,如果存在,则使用.slides
。
var $selector = $('#content-company').length ? $('#content-company') : $('.slides');
$selector.load(url);
您可以简单地使用这个:
$("#content-company, .slides").first()
请注意,第一个元素是根据HTML顺序确定的。如果找到多个匹配元素,则返回按HTML顺序排列的第一个元素。