2011-02-11 16 views
2

ユーザーがtextareaフィールドにHTMLを配置した場合、挿入されたテキストが<object>タグであるかどうかを確認するにはどうすればよいですか?子要素のjQueryチェックと属性の取得

trueの場合、<object>のsrc属性を変数に割り当てたいとします。

これを行う最も効率的な方法は何ですか?

<div id="embed"> 
    <textarea> 
     <object src="..."></object> 
    </textarea> 
</div> 

答えて

0
var $obj = $($("#embed textarea").text()); 
var src = $obj.is("object") ? $obj.attr("src") : null; 

+0

['is()'はブール値を返します](http://jsfiddle.net/alexdickson/AbM4L/)、そうしたメソッドを連鎖させることはできません。 – alex

2

var textarea = $('#embed textarea'), 
    textareaValue = textarea.val(), 
    textareaValueDom = $(textareaValue); 

if (textareaValueDom.is('object')) { 
    var src = textareaValueDom.attr('src'); 
    console.log(src); // http://example.com 
} 

jsFiddle ...これを試してみてください。

+0

興味深いソリューションを、それを修正しました。 – Jeff

+0

ありがとう、あなたの答えは受け入れられたものに似ていますが、私は効率について尋ねたので、Ivanovコードが勝ちます。 http://jsperf.com/is-selector1より約15%高速です。 – Hussein

+0

@alexでも、このコードをできるだけ効率的にするために必要な状況を見つけるのは難しいでしょう。もしあなたが本当に効率を望んでいたら、jQueryを落とすでしょうが、もちろん、その速さを実行するためにJavaScriptを必要とするケースはほんのわずかです。 – alex

関連する問題