检查jQuery是否单击了包含img的锚点

时间:2015-04-15 15:53:09

标签: javascript jquery

如何检查点击的元素是否是包含img?

的锚点

因此,例如,我想检查是否单击了此元素:

<a href="#">
    <img src="#" />
<a/>
jQuery(document).click(function(e) {
    // e.target.hereIsWhereINeedHelp;
});

提前致谢!

6 个答案:

答案 0 :(得分:6)

如果你想抓住&#34;点击&#34;来自任何元素:

jQuery(document).click(function(e) {
    if (jQuery(e.target).is('a') && jQuery(e.target).has('img')) {
        // code goes here
    }    
});

您是否选择阻止&#34;默认行为&#34;是另一个问题。

答案 1 :(得分:2)

您可以使用.is("a").has("img")

<a href="#">
   <img src="#" />
<a/>

<script>
    jQuery(document).click(function(e) {
        var target = $( e.target );
        if ( target.is( "a" ) && target.has("img") ) {
            //Do what you want to do
        }
    });
</script>

答案 2 :(得分:1)

您可以使用has()方法检查元素是否包含另一个元素:

$('a').click(function(e) {
    e.preventDefault(); // this will stop the link from going anywhere.
    if ($(this).has('img')) {
        // do something
    }
});

您也可以使用if ($(this).find('img').length)

答案 3 :(得分:1)

使用has()方法

this.has("img");

答案 4 :(得分:0)

您可以使用has()find()

$("a").on("click", function(e) {

    e.preventDefault(); // Prevents the link redirection

    if ( $(this).has("img") ) {
        console.log("has image");
    }

});

答案 5 :(得分:0)

使用is检查点击的元素是否为锚标记,然后使用find查找image。如果两者都是真的那么你//do something

jQuery(document).click(function() {
    var el = $(this);
    if(el.is("a") && el.find("img").length > 0){
        //do something
    }
});