2016-08-03 9 views
-1

jQueryでDOMをトラバースしようとしていますが、undefinedを取得しています。jqueryトラバーサル経由でイメージプロパティを取得しようとしていますが、定義されていません。

alert($('#para1').childNodes[1].nodeName);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p id="para1"> 
 
    <img src=........> 
 
</p>

これを行うための適切な方法は何ですか:これは、コードのですか? img要素や属性を取得するので、多くの方法があります

答えて

0

...あなたがタグ名を使用する場合は

$('#para1 img').attr("src"); 
// or 
$('img', $('#para1')).attr("src"); 
// or 
$('#para1').find("img").attr("src"); 
// or 
$('#para1').children("img").attr("src"); 
/// ... 

.prop("tagName").attr("src")を交換してください。 indexによってループの子要素に

$('#para1').children().each(function() { 
    alert($(this).prop("tagName")); 
}); 

はこれを行うにしても、多くの、多くの方法があります。ただ、いくつかの可能な方法:

// using the index with :eq() 
var tag = $("#para1 *").eq(0).prop("tagName"); 

// another way using :eq() 
var tag = $("#para1").children().eq(1).prop("tagName"); 

// another way using :eq() 
var tag = $("#para1 :eq(2)").prop("tagName"); 

// using DOM elements out of jQuery 
var tag = $("#para1").children().get(0).tagName; 

// another way using DOM elements out of jQuery 
var tag = $("#para1").children()[1].tagName; 

// another way using DOM elements out of jQuery 
var tag = $("#para1 *")[2].tagName; 

// create a arra map out of all children 
var tags = $("#para1").children().map(function() { 
    return $(this).prop("tagName"); 
}).get(); 

Working example.

+0

厥本当に便利。 pタグが複数の子を持つ可能性があるので、子メソッドでインデックスを持つ配列を使用することが実際に可能であるかどうかはわかりませんでした。 – pedroyanky

+0

あなたは大歓迎です、@pedroyanky!あなたは何を持ちたいのか説明できますか?私はあなたが欲しいものを理解しているshureではない。あなたの結果はどうあるべきか教えてください。 – eisbehr

+0

DOMをトラバースする際に常に問題を抱えていましたが、達成しようとしていたのは、角括弧で配列インデックスを使用して子を取得することでした。 – pedroyanky

0
$('#para1').children().get(0).tagName 
関連する問題