2017-12-15 17 views
0

attr()タグを使用して2つの属性を設定しようとしていますが、古いjqueryバージョン1.3.4では正常に動作しますが、新しいバージョン2.1.3では機能しません。私はそれがaddRow()機能、私は次のコード行で問題に直面していますJqueryを使用して2つの属性を設定していますか?

function addRow() { 
     var tr = $(table).find('tr:not(.noedit):first').clone(); 
     addFormPos(); 

     if($(tr).find("input, select, textarea").length > 0) { 
      $(tr).find("input, textarea, select").each(function(index, elem) { 
       // Change the name of the fields 
       var newName = ''; 
       if(config.formPos !== '') { 
        newName = elem.name.replace(/\[[0-9]+\]/i, '[' + config.formPos + ']'); 
       }else { 
        newName = elem.name; 
       } 
       if(elem.type == 'checkbox' || elem.type == 'radio') { 
        $(elem).attr({'name': newName, 'checked': false}) 
       }else { 
        $(elem).attr({'name': newName, 'value': ''}); 
       } 
       $(elem) 
      }); 
      $(tr).find("input:radio, input:checkbox").attr('checked', false); 
     } 
     if(cols[k] && cols[k].type == "" && cols[k].formula) 
      $(tr).find("td:eq(" + cols[k].pos + ")").html(''); 
     if(config['countRow']) { 
      var fila = parseInt($(table).find('tr:not(.noedit):last td:eq('+ config['countRowCol'] +')').html()) + 1; 
      $(tr).find('td:eq('+ config['countRowCol'] +')').html(fila); 
     } 
     $(table).find('tr:not(.noedit):last').after(tr); 
     // Register elements that fire events 
     setEvents(); 
     for(var kk in cols){ 
      if(cols[kk].summary) 
       calculateSummary(cols[kk].name); 
     } 
    } 

$(elem).attr({'name': newName, 'value': ''}); 

それはjqueryので2.1.3バージョンをvalue=""を設定するが、名前を設定していない、次のいグライダーのAPIを使用しています正しく誰かが私が間違っていることを提案することはできますか?

更新

これはOracle APEX v5.0新しいテーマでは動作しません。私はgithubから次のAPIを使用しています

+0

入力されていない場合はどの値を使用していますか?設定されていない値は入力のみです。そのためには 'data- *'を使用できます。あなたは同様にhtmlマークを追加できますか? – guradio

+0

質問に関連するHTMLを追加できますか? – Nisarg

+0

あなたは[jQuery Docs](http://api.jquery.com/attr/)を参照できます。 – Rajesh

答えて

-1

これはおそらくjQueryだけとは関係ありません。

この要素をHTMLで検討してください。

<p id="content">something here<p> 

バニラJSを使用して属性を追加します。

var elem = document.getElementById('content'); 
elem.setAttribute("value",""); 

<p>要素を検査します。 value属性は存在していますが、値はありません。あなたは、「HTMLとして編集」をクリックすることで、あなたのdevのツールからこのHTMLスニペットをコピーするとき

<p id="content" value>something here</p> 

驚くべきことに、これが出力されます。

<p id="content" value="">something here</p> 

ブラウザのトリックのような感じです。機能に影響を与えるべきではありません。

+0

downvoted人が実際にステップを実行しようとした。 – rach8garg

関連する問題