Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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 选择其具有特殊属性的最近父元素具有特殊值的元素_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 选择其具有特殊属性的最近父元素具有特殊值的元素

Javascript 选择其具有特殊属性的最近父元素具有特殊值的元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我想选择一个元素,该元素的最近父元素具有特殊属性,具有特殊值。例如,在下面的代码中,我想选择一个具有att2=“sp”的元素,并且它最近的元素具有“att1”属性,其值等于“first_div” 您可以通过以下方式完成:- $("div[att1='first_div']").find("span[att2='sp']"); 这可能会对您有所帮助。您可以通过以下方式完成:- $("div[att1='first_div']").find("span[att2='sp']"); 它可能对你有帮

我想选择一个元素,该元素的最近父元素具有特殊属性,具有特殊值。例如,在下面的代码中,我想选择一个具有att2=“sp”的元素,并且它最近的元素具有“att1”属性,其值等于“first_div”


您可以通过以下方式完成:-

$("div[att1='first_div']").find("span[att2='sp']");

这可能会对您有所帮助。

您可以通过以下方式完成:-

$("div[att1='first_div']").find("span[att2='sp']");
它可能对你有帮助。

试试这个

var temp=$('span[att2=“sp”]”)。first().parent().parent();
警报(临时属性(“id”)

试试这个

var temp=$('span[att2=“sp”]”)。first().parent().parent();
警报(临时属性(“id”)

一个CSS选择器,显然也可以在jQuery中使用

[att1=first_div] :not([att1]) [att2=sp], [att1=first_div] > [att2=sp]
你应该做这个把戏吗

用jQuery术语来说

var $el = $('[att1=first_div] :not([att1]) [att2=sp], [att1=first_div] > [att2=sp]');
编辑:

好的,看起来问题可能有点超出了纯CSS解决方案的范围。此JavaScript位应最终获得您想要的结果:

var $matches = $('[att2=sp]').filter(function() {
    // Get closest parent with 'att1' attribute
    var $closestCandidate = $(this).closest('[att1]');
    // Include in result if a parent with att1 was found, and the att1 value is 'first_div'
    return $closestCandidate.length && $closestCandidate.attr('att1') === 'first_div';
});

请参阅。

一个CSS选择器,它显然也可以在jQuery中使用

[att1=first_div] :not([att1]) [att2=sp], [att1=first_div] > [att2=sp]
你应该做这个把戏吗

用jQuery术语来说

var $el = $('[att1=first_div] :not([att1]) [att2=sp], [att1=first_div] > [att2=sp]');
编辑:

好的,看起来问题可能有点超出了纯CSS解决方案的范围。此JavaScript位应最终获得您想要的结果:

var $matches = $('[att2=sp]').filter(function() {
    // Get closest parent with 'att1' attribute
    var $closestCandidate = $(this).closest('[att1]');
    // Include in result if a parent with att1 was found, and the att1 value is 'first_div'
    return $closestCandidate.length && $closestCandidate.attr('att1') === 'first_div';
});


请参阅。

您可以使用jquery选择器,如
$('[attr2=sp]')
访问该特殊属性,对于最接近的父级,请使用
$('[attr2=sp]').parent()
选择器。@SachinK是的,您是对的,但是如果我使用.parent(),它将返回父级元素,但我需要子级元素。例如,在我的例子中,我希望得到的结果不是。您可以使用jquery选择器,如
$('[attr2=sp]')
访问该特殊属性,对于最接近的父级,可以使用
$('[attr2=sp]')。parent()
选择器。@SachinK是的,您是对的,但如果我使用.parent(),它将返回父级元素,但我需要子级元素。例如,在我的例子中,我希望作为结果而不是。如果我使用.parent(),它将返回父元素,但我希望返回子元素。例如,在我的情况下,我希望得到的结果不是。您需要使用父对象的子对象,或者需要父对象是特定的子对象?我认为您需要父对象是特定的子对象,如果您需要这些,请告诉我,我将再次更新我的答案。是的,我希望选择具有特殊父对象的子对象(正如我在问题中提到的)这个答案没有考虑到<代码> [ATT2= SP] 的最接近的父级,使用<代码> ATT1属性必须具有<代码> ATT1<代码>值>代码> FiSTYDIV。代码>
将错误匹配。如果使用.parent(),它将返回父元素,但我需要子元素。例如,在我的情况下,我希望得到的结果不是。您需要使用父对象的子对象,或者需要父对象是特定的子对象?我认为您需要父对象是特定的子对象,如果您需要这些,请告诉我,我将再次更新我的答案。是的,我希望选择具有特殊父对象的子对象(正如我在问题中提到的)这个答案没有考虑到<代码> [ATT2= SP] 的最接近的父级,使用<代码> ATT1属性必须具有<代码> ATT1<代码>值>代码> FiSTYDIV。代码>
将错误地匹配您的答案。但您的答案不是全局答案,它仅适用于此示例:(.Jquery选择器基于html结构工作。您的html结构是否已修改?请回答。但您的答案不是全局答案,它仅适用于此示例:(.Jquery选择器基于html结构工作。您的html结构修改了吗?这对我来说是可行的!但我需要Jquery代码。您能将选择器转换为Jquery模式吗?@pooyan请注意,原始答案有一个限制:
att2=sp
的子级
att2=first\u div
不匹配。例如
不会匹配。我更新了答案,将此案例也包括在内。请回答。但我面临的问题是:(.你的答案在这种情况下不起作用:@pooyan,我明白了。再次更新了答案,希望有一个全面的解决方案。这对我来说是有效的!但我需要jquery代码。你能将选择器转换为jquery模式吗?@pooyan请注意,原始答案有一个限制:
att2=sp
att2=first\u div
的子代不匹配。例如,
将不匹配。我更新了答案,以包含此案例。我希望您的答案也包含在内。但我面临的问题是:(。您的答案在这方面不起作用:@pooyan,我明白了。再次更新了答案,希望有一个全面的解决方案。