1

HTML

<div id="mydiv">
    <a id="a1" href="javascript:DisplayURL();">
    <img src="image1.png" />
    </a>
</div>

Javascript

 function DisplayURL(){
     if ($('#mydiv').find('#a1').has("img"))
                {
                    alert($('a#a1 img').has("img").attr('src'));
                }
    }

我在警报中变得不确定?

4

2 回答 2

1

积分

  1. .has() 返回一个 jQuery 包装器,因此需要测试返回对象的长度
  2. 因为a元素有一个id选择器$('#mydiv').find('#a1'),所以可以简化为$('#a1')
  3. $('#a1 img')选择img内部a1,因此无需使用 .find()

它应该是

function DisplayURL() {
    if ($('#a1').has("img").length) {
        alert($('#a1 img').attr('src'));
    }
}

它可以进一步改变为

function DisplayURL() {
    var $imgs = $('#a1 img');
    if ($imgs.length) {
        alert($imgs.attr('src'));
    }
}
于 2013-09-30T05:03:15.713 回答
0

你可以这样试试。

function DisplayURL() {
    if ($('#mydiv #a1').has("img").length) {
        alert($('#mydiv #a1').find("img").attr('src'));
    }
}
于 2013-09-30T05:06:30.407 回答