2011-11-10 11 views
0

要素がelement.text()の値を返すかどうかを判断する方法はありますか? javascriptまたはjqueryを使用していますか?javascript/jquery-要素にテキスト属性があるかどうかをチェックする方法

I.E.要素が純粋なテキストであるかどうかをチェックする何らかの方法、または他のタイプの要素ですか?

私は上記の解決策を必要とするのはなぜ---

私はラジオボタンの要素のテキスト値は、例えば、方法で(全く別のコーディングスタイルでいくつかの複雑なフォームを解析することがしようとしています

、だから私はラッパーとしてフォームIDでフォームを解析する必要が

)...ので、上のラベル・タグで囲むこと、またはそれらを直接与えることができ、またはそれらはspanタグで囲むことができ、かつ

ラジオボタンのテキスト値がspanで囲まれ、現在選択されている要素がラジオボタンの場合、次の要素はspan taになります私は何もしたくないと移動したいg(オープニング)。それ以降はテキストとなり、this.text()を使用して取得します。したがって

全体の問題...

答えて

1

として要素の種類を確認することができます3)

<div id="wrapper"><input type='radio' />some text here</div> 

$('#wrapper').contents().each(function() 
        { 
         alert(this.nodeType); 
        }); 

警告メッセージは1(入力用)と3(テキスト用)です。タイプ= 3の場合は、を使用してテキスト値を取得することができます。

注 - 空白もテキストノードとして考慮されます。チェックする

+0

リファレンス:http://reference.sitepoint.com/javascript/Node/nodeType –

+0

私はそれがうんざりだと知っています。それはまったく実際にはjavascriptではありませんが、javascriptを使用しているときに中括弧が改行で始まらないようにしてください。そうでなければ不正な構文です。 –

+0

@Vikk - 私は " パスタを解析しようとしていますが、あなたが提案した方法(nodeTypeを取得)オープニング ""要素を無視した後のテキスト "Pasta" ...これはtext()コマンド自体の制限ですか?指定された要素タイプがテキストを囲んでいる場合、div/span/label /その他の要素タイプをスキップするだけです(私の例ではPasta)...またはラベル/スパン/ div?ありがとう... – Arvind

0

こんにちはあなたは要素が純粋なテキスト(場合は、その値であるかどうかをチェックするためにnodeTypeを使用することができます従う

<form > 
    <input type="text" id="a" value="abc"/> 
    </form> 
    <script> 

     var type = document.forms[0].elements[0].type; 
     alert(type); 

    </script> 
+0

を私は、サンプルのJSPファイルでそれを確認する必要があり、それが正常に動作します。 –

1
var attr = $(this).attr('name'); 

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

別の方法:

if(typeof($(this).attr('name')) != 'undefined') { // ... } 

あなたはあなたのjQueryの独自の拡張メソッドを作成することができます

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



<div class="edit" id="div_1">Test field</div> 
関連する問題