1

私はこのように見えるいくつかのhtmlを持っています。さまざまなstd-addressクラスに対して、それぞれaddress1範囲、都市範囲、および州範囲クラスのinnerHTMLコンテンツが必要です。

<div id="result-list">
            <div class="data">
                    <p class="std-address">
                        <span class="address1 range">some html content</span>
                        <span class="city range">some html content</span>
                        <span class="state range">some html content</span>

                    </p>
                    <p class="std-address">
                        <span class="address1 range">some html content</span>
                        <span class="city range">some html content</span>
                        <span class="state range">some html content</span>

                    </p>
                    <p class="std-address">
                        <span class="address1 range">some html content</span>
                        <span class="city range">some html content</span>
                        <span class="state range">some html content</span>

                    </p>
            </div>
</div>

IE 8以下でテストするまで、適切に機能していた以下のコードを書きました

var addArrayX = document.getElementById("result-list").getElementsByClassName("std-address");


            for (i=0;i<addArrayX.length;i++){
                var address = addArrayX[i];
                stLine1 = trim(((address.getElementsByClassName("address1 range"))[0]).innerHTML);
                city = trim(((address.getElementsByClassName("city range"))[0]).innerHTML);
                state =  trim(((address.getElementsByClassName("state range"))[0]).innerHTML);
            }

このコードをIEと互換性があるようにするのを手伝ってください(jsを優先的に使用するか、jQueryを使用して)

ここにhtml http://jsfiddle.net/H3HRN/9/のリンクがあります

4

5 に答える 5

1

一般に、使用できない DOM 関数が 1 つある場合は、ポリフィルを使用して、サポートされていないブラウザーで同様の機能を実装します。多くの機能について、Google で[name of method] + polyfill検索すると、ページに含めることができる js コードのスニペットが見つかり、js がブラウザー間で動作するようになります。これは getElementsByClassName の 1 つです

ただし、多数の DOM メソッドをポリフィルする必要がある場合は、jQuery/Sizzle などのライブラリを含めるのが最善の方法かもしれません。

于 2012-05-23T10:18:34.747 に答える
0

jQuery では、コードは次のようになります。

$("#resultList .stdAddress").each(function() {
    var stLine1 = $.trim($(this).children(".address1").text());
    var city = $.trim($(this).children(".city").text());
    var state = $.trim($(this).children(".state").text());
});
于 2012-05-23T09:18:26.203 に答える
0

jQuery の方法:

var innerHTML = $('.className').html();

resultListidの子が必要な場合:

var innerHTML = $('#resultList .className').html();
于 2012-05-23T09:16:35.127 に答える
0

jQuery:

$('#resultList .stdAddress')

私見ですが、多くの DOM 選択を行う必要がある場合は、jQuery をずっと使用してください。

于 2012-05-23T09:16:36.560 に答える