-1

次のhtml文字列がありcontentStringます:

var content = 
   '<div id="content">' +                        
    '<div>' +
      '<input name="tBox" id="select" type="checkbox" value="" '+
      'onclick="changeView()"> Select for operation' +
      '<p style="text-align:right"><a href="#">View details</a></p>' +
    '</div>' +
   '</div>';

ここで、selectIDでチェックボックスを見つけて、機能でチェックされた属性を追加するにはどうすればよいchangeView()ですか?

function changeView(m) {                
   //find the select id from content string
  var checkbox = content.find($('#select'+m));
  // Apply the checked property on checkbox.
    checkbox.attr("checked","checked");
}

前もって感謝します。

4

4 に答える 4

2

最初に JQuery オブジェクトに変換すると、次のように実行できます。

var contentObj = $(content);
var checkbox = contentObj.find("#select");
checkbox.attr("checked", true);

次に、html 文字列に戻す必要がある場合:

content = contentObj[0].outerHTML;

:outerHTMLが期待どおりに機能しない場合は、代わりに次の JQuery を使用できます。

content = contentObj.clone().wrap('<div>').parent().html();

検索したいもの (例: 「選択」) をm意図している場合は、次のように使用します。id

var checkbox = contentObj.find("#" + m);

実際の例: これは実際の例です


簡単に参照できるように、完全な関数を次に示します。

function changeView(m) {
    var contentObj = $(content);
    var checkbox = contentObj.find("#" + m);
    checkbox.attr("checked", true);
    content = contentObj[0].outerHTML;
}
于 2013-10-09T11:01:54.617 に答える
0

最初に文字列を jQuery 呼び出しでラップして、DOM オブジェクトにコンパイルする必要があります。次に、find メソッドを使用できます。

そう:

var dom = $(content),
    select = dom.find('#select');

いずれの場合も、チェックボックスをクリックすると自動的にチェックされるため、'checked' 属性を追加する必要はありません。

ただし、プログラムでチェックしたい場合は、次のようにします。

select.on('click', function () {
    this.attr('checked', 'checked');
});
于 2013-10-09T11:02:05.717 に答える
0

単にこのように

function changeView(m) {                
//find the select id from content string
var checkbox = content.find('#select');
// Apply the checked property on checkbox.
checkbox.attr("checked","checked");
}

IDを渡したい場合

function changeView(m) {                
//find the select id from content string
var checkbox = content.find("#" + m);
// Apply the checked property on checkbox.
checkbox.attr("checked","checked");
}
于 2013-10-09T11:04:42.327 に答える
0

onclick ハンドラーを使用しているため、実際には何もする必要はありません。

htmlで:onclick="changeView(this);"

function changeView(box) {
   if(box.checked) { stuff; }
   // or get jquery ref to that box :
   $(box).prop("checked", true);
}
于 2013-10-09T11:04:56.190 に答える