1

add() を使用して jQuery セットを構築しようとしていますが、実装によって要素がセットに追加されません。

 var questionPath = $(); // create empty set
    var selectedRuleElement = $(event.currentTarget);
    questionPath.add(selectedRuleElement); //no element is added to set here!
    selectedRuleElement.find('li.property-value-node').each(function () {
        var questionId = $(this).attr('data-parent-id');
        questionPath.add($('#' + questionId)); // or here!
    });
    return questionPath;

上記の add() 行は両方とも、引数として有効な要素が与えられています。jQuery セットに要素を追加する正しい方法を教えてもらえますか?

4

2 に答える 2

3

文字列と同様に、jQuery オブジェクトは不変であるため、戻り値を再割り当てする必要があります。.add()それ以外の場合は、によって返された値を破棄し、変更されませんquestionPath

questionPath = questionPath.add(selectedRuleElement);
于 2012-07-24T17:42:27.147 に答える
0

jQuery.merge()を使用できます:

var questionPath = $(); // create empty set
var selectedRuleElement = $(event.currentTarget);
$.merge(questionPath,selectedRuleElement);  //merging
selectedRuleElement.find('li.property-value-node').each(function () {
    var questionId = $(this).attr('data-parent-id');
    $.merge(questionPath,$('#' + questionId)); //merging
});
return questionPath;
于 2012-07-24T17:48:18.160 に答える