Lquery在insertBefore()&之间缺乏相似性。 insertAfter()

时间:2014-11-25 21:52:26

标签: javascript jquery

我可能不是第一个注意到使用insertBefore& insertAfter,这些方法需要不同的语法。我希望有人可以解释原因。

这是我的(功能!)代码:

/* change the order of form elements */
function sendup(row) {

// needs to move two up.  Step up to the containing span MT
var prevRow = $(row).prevAll('#checkboxSelect').first().get(0);

    if(prevRow) {
        row.parentNode.insertBefore(row, prevRow);
    }
}

function senddown(row) {
$('#checkboxSelect').insertAfter()
// Step up to the containing span MT
var nextRow = $(row).nextAll('#checkboxSelect').first().get(0);

    if(nextRow) {
        $( row ).insertAfter( nextRow );
    }
}

HTML / PHP循环创建复选框列表(如果相关):

<span id="checkboxSelect">
<input type="checkbox" name="field_group[]" id="$field" value="$field">$field<span style="float:right;"><a onclick="sendup(this.parentNode.parentNode)"><img src="icon_uparrow.png"></a>&nbsp;<a onclick="senddown(this.parentNode.parentNode)"><img src="icon_downarrow.png" border="0"></a></span><br>
</span>

由于缺乏相似性,使这个Jquery功能化很痛苦。

1 个答案:

答案 0 :(得分:2)

实际上insertBeforeinsertAfter在jQuery中具有相同的签名。虽然您使用的是纯js insertBefore,但它不是jQuery函数。