jQuery hasAttrは、要素に属性があるかどうかをチェックします[重複]



Jquery Hasattr Checks Whether Element Has Attributes



この記事の翻訳元: jQuery hasAttrは、要素に属性があるかどうかを確認します[重複]

重複の可能性: 繰り返される可能性があります:
JQueryで属性の存在を確認してください JQueryを使用して、属性が存在するかどうかを確認します



jQueryの要素に属性があるかどうかをどのように確認しますか? jQueryの要素に属性があるかどうかをどのように確認しますか? hasClassに似ています、ただしattr hasClass同様ですがattr

例えば、 例えば、



if ($(this).hasAttr('name')) { // ... }

#1階

参照: https://stackoom.com/question/5WtI/jQuery-hasAttr要素に属性があるかどうかを確認します-重複


#2階

あなたはとても近くにいるのでクレイジーです。 あなたは近すぎます、それはクレイジーです。

if($(this).attr('name'))

hasAttrはありませんが、属性を名前でヒットすると、属性が存在しない場合はundefinedが返されます。 hasAttrがないが、名前で属性をヒットすると、未定義のみが返されます(存在しない場合)。



これが以下が機能する理由です。 これが以下の理由です。 #headingからname属性を削除すると、2番目のアラートが発生します。 name属性が#headingから削除されると、2番目のアラートがトリガーされます。

更新: コメントによると、以下は のみ 属性が存在する場合は機能します そして 属性が存在するが空の場合は何かに設定されます 更新: コメントによると、属性が存在する場合 次に、次のようになります のみ 動作し、属性は存在するが設定されていない場合 次に空に設定します

$(document).ready(function() { if ($('#heading').attr('name')) alert('Look, this is showing because it's not undefined') else alert('This would be called if it were undefined or is there but empty') })

#3階

var attr = $(this).attr('name') // For some browsers, `attr` is undefined for others, // `attr` is false. Check for both. if (typeof attr !== typeof undefined && attr !== false) { // ... }

#4階

属性の存在を頻繁にチェックする場合は、hasAttrを作成することをお勧めします。関数、あなたがあなたの質問で仮定したように使用するために: 属性の存在を頻繁にチェックする場合は、a hasAttr関数を作成して、質問で使用されると想定できるようにすることをお勧めします。

$.fn.hasAttr = function(name) { return this.attr(name) !== undefined } $(document).ready(function() { if($('.edit').hasAttr('id')) { alert('true') } else { alert('false') } }) Test field

#5階

これを行う最良の方法は、filter()を使用することです。 : これを行う最良の方法は、filter()を使用することです。 :

$('nav>ul>li>a').filter('[data-page-id]')

.hasAttr()があると便利ですが、存在しないため、この方法があります。 .hasAttr()があると便利ですが、存在しないため、そのような方法があります。


#6階

次のように、フォームフィールドのdisabled = 'disabled'などの属性で使用することもできます。 以下に示すように、フォームフィールドなどでdisabled = 'disabled'などの属性を使用することもできます。

$('#change_password').click(function() { var target = $(this).attr('rel') if($('#' + target).attr('disabled')) { $('#' + target).attr('disabled', false) } else { $('#' + target).attr('disabled', true) } })

'rel'属性は、ターゲット入力フィールドのIDを格納します。 'rel'属性は、ターゲット入力フィールドのIDを格納します。