답변:
jQuery 생성자는 context
선택 컨텍스트를 재정의하는 데 사용할 수 있는 두 번째 매개 변수를 허용합니다 .
jQuery("img", this);
다음과 같이 사용하는 .find()
것과 같습니다.
jQuery(this).find("img");
당신이 원하는 imgs 인 경우 에만 클릭 된 요소의 직계 후손, 당신은 또한 사용할 수 있습니다 .children()
:
jQuery(this).children("img");
당신은 또한 사용할 수 있습니다
$(this).find('img');
이는의 img
자손 인 모든을 반환합니다 .div
$(this).children('img')
더 좋을 것 같습니다 . 예를 들어 <div><img src="..." /><div><img src="..." /></div></div>
, 사용자는 아마도 1 단계 이미지를 찾고 싶어하기 때문입니다.
img
정확히 한 수준 아래로 첫 번째를 받아야하는 경우
$(this).children("img:first")
.children()
는 "정확히 한 수준 아래로" 시작된 :first
곳이며 "첫 번째"가 시작된 곳 입니다.
.find()
대신.children()
this
이미에 대한 참조했다 <div>
을 포함 <img>
당신은 당신 확실히 할 수 확실히 작성 개보다 후 한 기준에서 트래버스에 태그의 여러 수준이있다 그러나 경우, children()
전화
DIV 태그 바로 뒤에 IMG 태그가 오는 경우 다음을 사용할 수도 있습니다.
$(this).next();
직접 아이들은
$('> .child-class', this)
아래와 같이 부모 div의 모든 img 요소를 찾을 수 있습니다
$(this).find('img') or $(this).children('img')
특정 img 요소를 원한다면 다음과 같이 쓸 수 있습니다
$(this).children('img:nth(n)')
// where n is the child place in parent list start from 0 onwards
div에는 하나의 img 요소 만 포함되어 있습니다. 이 아래에 맞습니다
$(this).find("img").attr("alt")
OR
$(this).children("img").attr("alt")
그러나 div에 아래와 같은 img 요소가 더 있으면
<div class="mydiv">
<img src="test.png" alt="3">
<img src="test.png" alt="4">
</div>
그런 다음 상위 코드를 사용하여 두 번째 img 요소의 대체 값을 찾을 수 없습니다. 그래서 당신은 이것을 시도 할 수 있습니다 :
$(this).find("img:last-child").attr("alt")
OR
$(this).children("img:last-child").attr("alt")
이 예제는 부모 개체 내에서 실제 개체를 찾는 방법에 대한 일반적인 아이디어를 보여줍니다. 클래스를 사용하여 자식 개체를 구별 할 수 있습니다. 쉽고 재미 있습니다. 즉
<div class="mydiv">
<img class='first' src="test.png" alt="3">
<img class='second' src="test.png" alt="4">
</div>
아래와 같이 할 수 있습니다 :
$(this).find(".first").attr("alt")
보다 구체적으로 :
$(this).find("img.first").attr("alt")
위 코드와 같이 find 또는 children을 사용할 수 있습니다. 더 방문을 위해 아이들은 http://api.jquery.com/children/ 하고 찾기 http://api.jquery.com/find/을 . 예를 참조하십시오 http://jsfiddle.net/lalitjs/Nx8a6/
jQuery에서 자식을 참조하는 방법 다음 jQuery에 요약했습니다.
$(this).find("img"); // any img tag child or grandchild etc...
$(this).children("img"); //any img tag child that is direct descendant
$(this).find("img:first") //any img tag first child or first grandchild etc...
$(this).children("img:first") //the first img tag child that is direct descendant
$(this).children("img:nth-child(1)") //the img is first direct descendant child
$(this).next(); //the img is first direct descendant child
DIV의 ID를 모르면 다음과 같이 IMG를 선택할 수 있다고 생각합니다.
$("#"+$(this).attr("id")+" img:first")
이 코드를 사용해보십시오 :
$(this).children()[0]
$($(this).children()[0])
.
$(this:first-child)
$($(this).children()[x])
사용 $(this).eq(x)
하거나 그냥 첫 번째를 원하는 경우 $(this).first()
.
jQuery each
는 하나의 옵션입니다.
<div id="test">
<img src="testing.png"/>
<img src="testing1.png"/>
</div>
$('#test img').each(function(){
console.log($(this).attr('src'));
});
Child Selecor 를 사용 하여 상위에서 사용 가능한 하위 요소를 참조 할 수 있습니다 .
$(' > img', this).attr("src");
아래는 참조가없고 다른 기능에서 사용할 수있는 $(this)
참조하려는 경우 입니다.img
div
$('#divid > img').attr("src");
기능 코드는 다음과 같습니다. 간단한 데모입니다.
DIV를 클릭하면 몇 가지 다른 방법으로 이미지를 얻습니다.이 상황에서 "this"는 DIV입니다.
$(document).ready(function() {
// When you click the DIV, you take it with "this"
$('#my_div').click(function() {
console.info('Initializing the tests..');
console.log('Method #1: '+$(this).children('img'));
console.log('Method #2: '+$(this).find('img'));
// Here, i'm selecting the first ocorrence of <IMG>
console.log('Method #3: '+$(this).find('img:eq(0)'));
});
});
.the_div{
background-color: yellow;
width: 100%;
height: 200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="my_div" class="the_div">
<img src="...">
</div>
그것이 도움이되기를 바랍니다!
의 <img>
내부에 0 개에서 여러 개의 태그 가있을 수 있습니다 <div>
.
요소를 찾으려면 .find()
.
코드를 안전하게 유지하려면을 사용하십시오 .each()
.
여러 요소 를 처리 할 수있게하면서 0 요소 의 경우 .find()
및 .each()
참조를 함께 사용 하면 null 참조 오류가 방지 됩니다.<img>
<img>
// Set the click handler on your div
$("body").off("click", "#mydiv").on("click", "#mydiv", function() {
// Find the image using.find() and .each()
$(this).find("img").each(function() {
var img = this; // "this" is, now, scoped to the image element
// Do something with the image
$(this).animate({
width: ($(this).width() > 100 ? 100 : $(this).width() + 100) + "px"
}, 500);
});
});
#mydiv {
text-align: center;
vertical-align: middle;
background-color: #000000;
cursor: pointer;
padding: 50px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="mydiv">
<img src="" width="100" height="100"/>
</div>
$("body").off("click", "#mydiv").on("click", "#mydiv", function() {
event.stopImmediatePropagation()
그 일이 일어나지 않도록 요소를 사용하여 상처를 입었습니다 .
$(document).ready(function() {
// When you click the DIV, you take it with "this"
$('#my_div').click(function() {
console.info('Initializing the tests..');
console.log('Method #1: '+$(this).children('img'));
console.log('Method #2: '+$(this).find('img'));
// Here, i'm selecting the first ocorrence of <IMG>
console.log('Method #3: '+$(this).find('img:eq(0)'));
});
});
.the_div{
background-color: yellow;
width: 100%;
height: 200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="my_div" class="the_div">
<img src="...">
</div>