0

だから私は次のHTMLを持っています

<div class="tmpl" id="query_tmpl">
<tr>
    <td><a href="#" class="group"></a></td>
    <td class="primary_email"></td>
</tr>
</div>

および次の JS:

 console.log($('#query_tmpl').html());

何らかの理由で、これは「a」タグのみを記録します。(例: http://jsfiddle.net/L8RQq/ )

なぜこれが起こるのですか? また、tr/td を適切に取得できるようにするにはどうすればよいですか? それが違いを生む場合、私はjQuery 1.9.2を使用しています。

更新:はい、マークアップは「悪いhtml」ですが、この質問の要点はそれを回避する方法です。現在の HTML を使用して、それを変更せずに、「悪い」ものであってもコンテンツを取得するにはどうすればよいですか?

4

3 に答える 3

1

tableの周りにタグがありませんtr。これを試して:

<div class="tmpl" id="query_tmpl">
    <table>
        <tr>
            <td><a href="#" class="group"></a></td>
            <td class="primary_email"></td>
        </tr>
    </table>
</div>

これにより、div の内容が適切に記録されます

ログに記録されなかった理由は、ブラウザがいくつかの無効なtrおよびtdタグを認識し、それらを削除するためtableですa

マークアップを変更できない場合は、そのマークアップを作成した人または会社に修正を依頼してください。無効な HTML です。

于 2013-02-22T13:27:01.553 に答える
0

このようにしてください

    <table class="tmpl" id="query_tmpl">
         <tr>
            <td><a href="#" class="group"></a></td>
            <td class="primary_email"></td>
         </tr>
    </table>

そうすればきっと正しく動く

于 2013-02-22T13:27:59.833 に答える
0

tr や td を取得したい場合は、最終的にはchildren([selector])whereなどの CSS 操作関数を使用できます。selectorclass

于 2013-02-22T13:28:41.383 に答える