0

'data-prototype'という属性を持つdivがあります。その属性'data-prototype'にはいくつかのhtmlが含まれています。そのhtmlの中にネストされているのは、抽出したいselectタグです。jqueryを使用して属性コンテンツ全体を取得する方法は知っていますが、特定のタグ(私の場合はselectタグ)を取得する方法はわかりません。前もって感謝します。乾杯。マーク

JsFiddle: http: //jsfiddle.net/gpsw3/

私のhtml:

<div id="some-div" data-prototype="<div><span>something</span><select><option>opt1</option><option>opt2</option></select></div>"></div>

<a id="btn">click</a>

私のJquery:

$(document).on({
            click: function() { 
                $container = $('#some-div');
                alert($container.attr('data-prototype'));
            }
}, '#btn');
4

3 に答える 3

2

data-prototypeのコンテンツからDOM要素を作成してから、指定された要素を見つけることができます。

var $container = $('#some-div');
var $prototype = $("<div/>").append($container.attr("data-prototype"));
var $select    = $prototype.find("select");

または、.data()代わりにを使用して属性.attr()にアクセスすることもできます。data-*

こちらをご覧ください。


明確化$("<div/>").append(...)。この.find()関数は子孫で機能するため、属性の最上位(ルート)要素を選択できるようにコンテンツをラップする必要がありdata-prototypeます。

于 2013-01-13T12:01:30.540 に答える
0

これを試してください:http://jsfiddle.net/gpsw3/1/

$(document).on({
        click: function() { 
            $container = $('#some-div');
            var a = $container.attr('data-prototype');
    var b = a.substr(0, a.indexOf('</div>'));
    var c = b.substr(b.indexOf('<select>'));
    alert(c);
        }
    }, '#btn');

これを行う他の方法はないと思いますが(確かではありません)、この方法で探しているものを抽出できます。

于 2013-01-13T11:58:49.107 に答える
0

データ属性のコンテンツをDOMセレクターに入れて、ターゲットにします

実例: http: //jsfiddle.net/gpsw3/3/

$(document).on({
    click: function() {
        $container = $('#some-div');
        $nestedHTML = $("<div/>").append($container.attr('data-prototype'));
        $select = $nestedHTML.find('select');
        console.log( $select);
    }
}, '#btn');
于 2013-01-13T12:09:14.823 に答える