我知道有很多关于这个主题的帖子,但我不知道为什么它一直让我回复" undefined"。
HTML:
<div class="gridShortlist active" onclick="shortlist('1');">
<img src="../../images/shortlisted.png"/>
</div>
JS:
function shortlist(intValue){
if (intValue == 1){
var src = $(this).find('img').attr('src');
console.log(src);
}
else if (intValue == 0){
alert("deactive");
}
}
我想返回img的src值,但不确定为什么它只会返回undefined。 任何人都可以帮助纠正我?
答案 0 :(得分:2)
通过点击传递this
,我们可以确保使用了正确的this
。此外,将1作为数字而不是字符串传递可能是一个好主意,因为您要与数字进行比较。
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
</head>
<body>
<div class="gridShortlist active" onclick="shortlist(this, 1);">
<img src="../../images/shortlisted.png"/>
</div>
<script>
function shortlist(_this, intValue){
if (intValue == 1){
var src = $(_this).find('img').attr('src');
console.log(src);
}
else if (intValue == 0){
alert("deactive");
}
}
</script>
</body>
</html>
答案 1 :(得分:0)
var ele=document.getElementById("id1");
ele.onclick =function (){
var intValue=1
if (intValue == 1){
var src = $(this).find('img').attr("src");
alert(src);
}
else if (intValue == 0){
alert("deactive");
}
};
&#13;
div{
display:block;
background-color:red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="gridShortlist active" id="id1" >
<img src="../../images/shortlisted.png"/>
</div>
&#13;
答案 2 :(得分:0)
您可以通过以下代码为此做一个简单的jquery解决方案:
$(document).on('click', '.gridShortlist', function (intValue) {
var src = $(this).find('img').attr('src');
console.log(src);
});