1

私は非常に混同された Android Unit Conversion アプリケーションを作成しており、あらゆる種類のひどいものを使用してきれいにしています。基本的には、vebviews を介して JS を実行し、派手なスピナーで任意のサイズのリストに従ってフォーマットされた html を表示し、その下に略語を付けます...何とか何とか...

ともかく。今、私はこのようなものを持っています:

for (l = 0; l < this.slotData.length; l += 1) {
    out += '<li>' + this.slotData[l].values[i] + " "+'<li class="sw-right">'+this.slotData[l].abbreviations[i]+'</li></li>';
}

ここで、slotData[l] は "Milimeters" を表し、略語は "Mm" です。これは下にあり、形式が少し異なります。数字を入力すると、大きいミリの下、小さいミリの隣に表示され、「4400mm」と表示されます。

コードの別の場所で、クラス「sw-right」の子 li にアクセスして変更しようとしています。誰かがこれを行う簡単な方法を知っているかどうか疑問に思っていますか? 問題なく親にアクセスできますが、そこからの適切な方法がわかりません...

私のアクセスは次のようなものです:

this.slotEl[slot].......

何かご意見は?

みんなありがとう...

ナサニエル。

4

4 に答える 4

1

<li>要素をネストしようとしないでください。HTML構文では、リスト項目をネストすることはできません。終了タグはオプションであるため</li>、ブラウザはネストされたアイテムを最初のアイテムの兄弟として扱い、2番目の終了タグを2番目のアイテムの二重終了として破棄する可能性があります。

追加:2つの部分からなるリスト項目を作成しようとしているので、本当に必要なのは定義リストかもしれません。タグ内にネストされた範囲に属性を設定するには、spanの使用を検討してください。

于 2012-05-21T20:47:05.753 に答える
1

jqueryを使用することをお勧めします:

$('li.sw-right').html('html_you_want_set');
于 2012-05-21T20:27:51.527 に答える
0

あなたが使用できる

var myNestedLI = document.getElementsByClassName( 'sw-right' )[ 0 ]

また

var topElements = document.getElementsByTagName( 'li' );

var nestedElements = []

for( var i = 0; i < topElements.length; i ++ )
{

var theseElements = topElements[ i ].getElementsByTagName( 'li' )

for( var j = 0 ; j < theseElements.length; j ++ ) nestedElements.push( theseElements[ j ] )

}

// nestedElements now contains all nested LI elements
于 2012-05-21T20:25:36.223 に答える
0

Sparky が指摘した<li>ように、そのようなタグをネストすることはできません。2 番目の li は、最初のリスト項目とは別のリスト項目として扱われ、兄弟になります。<div>代わりに、内の2 つの別個の が必要です<li>。Div は一般的なブロック レベルの要素です。(ブロックレベルとは、それらの間に改行があることを意味し、ジェネリックとは、div の意味とスタイルが完全に自由であることを意味します。)

このより説明的なマークアップをお勧めします。

<li class="calculated-value">
  <div class="unit">*large unit name*</div>
  <div class="value">*small value with abbreviation*</div>
</li>

CSS では、次のルールにより、値の div 表示が小さくなります。

li.calculated-value div.value { font-size: 75%; }

(追加のルールを追加して、インデント、間隔の改善、太字または色の設定などを行うことができます。また、div.unit に別の行を追加して、個別にスタイルを設定することもできます。)

于 2012-05-21T21:22:01.720 に答える