-1

要素を繰り返し処理し、その要素srcの子の属性を取得しています。私はこのHTMLコードを持っています:

<noscript data-alt="super awesome">
    <img src="http://farm9.staticflickr.com/8235/8585847956_39864361e3.jpg" alt="something" />
</noscript>
<noscript data-alt="super awesome">
    <img src="http://farm9.staticflickr.com/8235/8585847956_39864361e3.jpg" alt="something" />
</noscript>

およびjQuery:

$('body').children().each(function() {
  var noscriptTag = $(this)[0];

  var imgAlt = noscriptTag.getAttribute("data-alt");
  var img_src = noscriptTag.find('img');
  var img_regular = img_src.getAttribute("src");
  console.log(img_regular);
});

しかし、私はこのエラーを受け取ります:

Uncaught TypeError: Object #<HTMLElement> has no method 'find'

また、他のさまざまな組み合わせ(など$(this).find('img');)を機能させずに試しました。

デモは次のとおりです:http://jsfiddle.net/LjWhw/

imgその要素のタグをターゲットにするにはどうすればよいですか?ありがとう!


更新:<noscript> JavaScriptで内部にある要素をターゲットにすることはできません。

4

3 に答える 3

3

DOMオブジェクトでfindjQuery関数を呼び出そうとしています。javascriptjQueryオブジェクトの代わりにオブジェクトを使用DOMしてfindを呼び出します。

変化する

var noscriptTag = $(this)[0];

var noscriptTag = $(this);

編集:img_src.getAttribute("src");それに応じて コードを変更する必要もありますimg_src[0].getAttribute("src");img_src.attr("src");

于 2013-03-25T10:04:50.220 に答える
0

私はあなたにこのようにすることを提案します:

$('body').children().each(function() {
  var noscriptTag = $(this).find('noscript').first();
   //---------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----this way
  var imgAlt = noscriptTag.getAttribute("data-alt");
  var img_src = noscriptTag.find('img');
  var img_regular = img_src.attr("src");
  console.log(img_regular);
});
于 2013-03-25T10:08:22.470 に答える
0

これを試して

http://jsfiddle.net/UQJsy/1/

$('noscript').each(function () {
    var noscriptTag = $(this);

    var imgAlt = noscriptTag.attr("data-alt");
    var img_src = noscriptTag.children('img');
    var img_regular = img_src.attr("src");
    alert(imgAlt);
});
于 2013-03-25T10:10:27.920 に答える