だから私は非常に単純なhtmlを持っています:
<ul>
<li value="test">test</li>
</ul>
そしてこのjqueryスクリプト
alert($("li").attr("value"));
戻るはずtest
ですが、0を返します。なぜこれが発生するのですか?
だから私は非常に単純なhtmlを持っています:
<ul>
<li value="test">test</li>
</ul>
そしてこのjqueryスクリプト
alert($("li").attr("value"));
戻るはずtest
ですが、0を返します。なぜこれが発生するのですか?
liタグ内のテキストを返したい場合は、次のようにします。
alert($("li").text());
'value'属性は使用できません(liタグの'value'属性は数値のみです)。名前をdata-valueに変更します。
alert($("li").attr("data-value"));
基本的に、セレクターはli
あなたが持っているすべての要素をキャプチャしています。セレクターをより具体的にすることをお勧めします。最初<li>
に使用できるのは-
$('li:first').attr('value');
属性を使用するのid
も良いでしょう。
ここでもう1つ注意すべき点は、要素内の実際のテキストコンテンツではなく、valueという属性の値を抽出しようとしていることです。属性値が必要な場合は、正しい方向に進んでいます。コンテンツが必要な場合は、text()
またはを使用してみてくださいhtml()
。
処理する要素が複数ある場合は、$.each
関数の使用を検討することをお勧めします。
var liValues = [];
$.each('li',function(index,value){
liValues.push(value.attr('value'));
});
は要素value
の有効な属性ではないため、これは機能していないようです。この例li
でわかるように、属性の名前を変更してコードを機能させることができます(ただし、どちらも有効ではないと思います...奇妙です)。rel
rel
このデータを別の場所に保存することを検討することをお勧めします。おそらくdata-*
属性を使用します。
<ul>
<li data-value="test">test</li>
</ul>
alert($("li").data("value"));
値をフェッチする場合、タグのvalue
属性は数値のみにすることができます。li
それ以外の場合は、常に0になり
ます。値の代わりにインデックスを使用できます。以下のように:
.attr("value", function (currentValue, index) { return index } )
どこ
currentValue
現在の要素の値です。index
現在の要素の配列インデックスです。