回答:
jQueryが強力なツールであることは否定できませんが、「要素の属性値を取得する」などの簡単な操作にjQueryを使用することは非常に悪い考えです。
現在受け入れられている回答から判断すると、ID属性を要素に追加し、それを使用してそれを選択できたと想定します。
これを念頭に置いて、2つのコードを示します。最初に、受け入れられた回答であなたに与えられたコード:
$("#ID").attr("name");
次に、バニラJSバージョンです。
document.getElementById('ID').getAttribute("name");
私の結果:
ここで自分でテストできます。「プレーンJavaScript」バージョンは35倍以上高速です、jQueryバージョンよりです。
さて、これは1つの操作に過ぎません。時間が経つにつれ、コードでより多くのことが行われるようになります。おそらく特に高度なものの場合、最適な「純粋なJavaScript」ソリューションの実行には1秒かかります。jQueryバージョンには30秒から1分ほどかかる場合があります。でかい!人々はそのために座るつもりはありません。ブラウザでさえ飽きてしまい、時間がかかりすぎるためにWebページを強制終了するオプションが表示されます。
より良い方法は、「this」を使用することです。「id」の名前が何であれ、それを使用します。「mytarget」というクラス名を追加する限り。
ターゲットを持つフィールドのいずれかが変更されると、そのフィールドの名前を含む警告ボックスが表示されます。スクリプト全体を切り取って貼り付けるだけで機能します!
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
$('.mytarget').change(function() {
var name1 = $(this).attr("name");
alert(name1);
});
});
</script>
Name: <input type="text" name="myname" id="myname" class="mytarget"><br />
Age: <input type="text" name="myage" id="myage" class="mytarget"><br />
単一の要素を処理する場合id
は、GenericTypeTeaの回答に記載されているセレクタを使用して、次のような名前を取得する必要があります$("#id").attr("name");
。
しかし、あなたが望むなら、私がこの質問を見つけたときに行ったように、特定のクラスのすべての入力名を含むリスト(私の例では、クラスのすべてのチェックされていないチェックボックスの名前を含むリスト.selectable-checkbox
)は次のようにすることができます:
var listOfUnchecked = $('.selectable-checkbox:unchecked').toArray().map(x=>x.name);
または
var listOfUnchecked = [];
$('.selectable-checkbox:unchecked').each(function () {
listOfUnchecked.push($(this).attr('name'));
});
入力タグにクラスを渡し、クラスを使用して名前の値にアクセスします。
<input class="test-class" name='xxxxx' value=1>
<script>
$('.test-class').attr('name');
</script>
または、idを使用して値にアクセスすることもできます。
<input id="test-id" name='xxxxx' value=1>
<script>
$('#test-id').attr('name');
</script>
以下の行では、最初に 'currnetRowAppName'の値が文字列でスペースをとらない単一のコードを提供しないという問題に直面していました。したがって、その後、単一のコードを提供し'"+row.applicationName+"'
、そのスペースも使用します。
例:
<button class='btn btn-primary btn-xs appDelete' type='button' currnetRowAppName='"+row.applicationName+"' id="+row.id+ >
var viewAppNAME = $(this).attr("currnetRowAppName");
alert(viewAppNAME)
これは正常に機能しています。