2

助けてください、私は内部にスパンを持つアンカータグを取得しました、Jqueryを使用して、スパンを失い、実際の値を使用せずに入力を追加するにはどうすればよいですか!??

私はこれを得た

<a class='fieldEditable' href='#'><span class='blue'>Id. Usuario</span> **Juan David**</a>

入力の値として値JuanDavidを使用したい

<a class='fieldEditable' href='#'><span class='blue'>Id. Usuario</span><input type="text" name="newid" value="**Juan David**"> </a>

スパンクラス='青'は同じではない場合があります私はそれが変わることを意味します

私は試した

$('a.fieldEditable').append('<input type="text" name="newid" value="">');

結果

<a class='fieldEditable' href='#'><span class='blue'>Id. Usuario</span> **Juan David**<input type="text" name="newid" value="**HOW MOVE THE VALUE JUAN DAVID TO HERE??**"></a>

ほぼ完了です。助けが必要です!!!

4

5 に答える 5

2

textNodesをターゲットにするのは少し難しいですが、ここに1つのアプローチがあります。

$(".fieldEditable")
    .contents()
    .filter(textNodes)
    .each(function(index, object){
        $("<input>", { 
            type: "text", 
            value: object.textContent.trim() 
        }).replaceAll(this).before(" ");
    });

function textNodes () {
    return this.nodeType === 3 && this.textContent.trim().length;
}​
<a class='fieldEditable' href='#'>
    <span class='blue'>Id. Usuario</span> 
    Juan David
</a>​

その結果、次のようになります。

<a class="fieldEditable" href="#">
    <span class="blue">Id. Usuario</span> 
    <input type="text" value="Juan David">
</a>

デモ: http: //jsfiddle.net/TxvYE/

于 2012-11-21T05:07:26.893 に答える
1

マークアップを変更できます。

<a class='fieldEditable' href='#'><span class='blue'>Id. Usuario</span><span id='target'>**Juan David**</span></a>

そしてjs:

$('a.fieldEditable').append('<input type="text" name="newid" value="">');
$('input[name=newid]').val($('#target').text());
于 2012-11-21T04:46:39.503 に答える
0

これを試して:

var v=$('a.fieldEditable').html();
var newHTML=v+'<input type="text" name="newid" value="">';
$('a.fieldEditable').html(newHTML);
于 2012-11-21T04:52:52.237 に答える
0

コンテナを使用する

<a class='fieldEditable' href='#'><span class='blue'>Id. Usuario</span><span id='target'>**Juan David**</span></a>

そして、その交換は簡単です:

var target = $('#target');
target.replaceWith($('<input/>').val(target.text())
于 2012-11-21T05:02:20.973 に答える
0

マークアップを変更せずに、そしてjavascript正規表現を使用して、これを使用できます。

var inner = $('.fieldEditable').html();
var re = /(<span.*<\/span>) ([\s\S]+)/i;
var m = re.exec(inner);
if(m != null && m.length == 3) {
    var span = m[1];
    var person = m[2]
    $('.fieldEditable').html(span + '<input type="text" name="newid" value="' + person + '">')
}
于 2012-11-21T05:21:36.320 に答える