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 回答