2011-10-24 10 views
0

私は対話形式を構築し、ユーザーの答えに応じてフィールドを読み込みます。今は2種類のオブジェクト「入力ラジオ」と「テキストエリア」があります。 JQueryを使って回答の価値を得ているので、最後にロードされたフィールドセット内でどのオブジェクトを扱っているのか、どのように知ることができますか?JQuery:私たちが扱っているオブジェクトの種類を知るには?

$.fn.getNodeName = function() { // returns the nodeName of the first matched element, or "" 
    return this[0] ? this[0].nodeName : ""; 
}; 

//var $something = $('input[type=radio]:checked:last'); 
var $something = $('fieldset:last').parent('nth-child(2)'); 

//$('#news ul li:first-child').addClass('active'); 

alert($something.getNodeName()); 

をしかし、それは... おかげで作業していない:

これは私がしようとしていますものです。

+0

:タイプを指定するための別の方法は、次のような、戻り値に余分なプロパティを追加することである「':radio'では、」CSSの既存のpseudoselectorではありません。おそらく、代わりにその部分の属性セレクタを使用することを意図していました。 'input [type = radio]:checked:last'? –

+0

最新の質問@Jordan – Roger

答えて

2

要素が入力要素であるとき、私は、またtypeを返すために、あなたのjQueryの機能を拡張しています

$.fn.getNodeName = function() { 
    var elem = this[0]; //Get the first element of the jQuery object 
    if(!elem) return ""; 
    var name = elem.nodeName.toLowerCase(); 
    return name == "input" ? "input[type=" + elem.type + "]" : name; 
}; 

可能な戻り値の例:
textareainput[type=text]input[type=button]、...

他の出力形式を使用する場合は、機能を調整するだけです。

$.fn.getNodeName = function() { 
    var elem = this[0]; //Get the first element of the jQuery object 
    if (!elem) return ""; 
    var name = elem.nodeName.toLowerCase(); 
    if (name == "input") { 
     name.type = elem.type; 
    } 
    return name; 
}; 
+0

これは答えです!どうもありがとうございました。 – Roger

関連する問題