jQuery .attr() 未在 HTML 之后设置值并在之前删除此属性
jQuery .attr() does not set in HTML after to set value and remove this attribute before
在我的脚本中,我需要一直在 HTML 中的表单项上设置属性,以便在执行 ajax 请求之前保存以前的数据并评估下一个数据。
关于 data-next-*
属性,在脚本完成后一直被删除:
function actualizeTmpDataAndSpinner (){
//Notice : "Value" is position value
var a_dataValueKeys = [ "value", "is-condition", "condition-type", "condition-selector" ];
for( var k=0 ; k < a_dataValueKeys.length; k++ ){
$("*[data-previous-" + a_dataValueKeys[k] + "]").removeAttr( "data-previous-" + a_dataValueKeys[k] );
$("*[data-next-" + a_dataValueKeys[k] + "]").each( function () {
var dataNextValue = $(this).attr("data-next-" + a_dataValueKeys[k] );
$(this).attr("data-" + a_dataValueKeys[k], dataNextValue );
});
$("*[data-next-" + a_dataValueKeys[k] + "]").removeAttr("data-next-" + a_dataValueKeys[k] );
}
$(".h4a-spinner-wrapper").remove();
}
由于某些原因,在 data-next-*
设置值并删除后,目前以下代码行仅在 DOM 中设置属性,而不再在 HTML 中设置属性:
function resetConditionForNext( $currentfieldConditionWrapper ) {
$currentfieldConditionWrapper.attr('data-next-is-condition', "false" );
$currentfieldConditionWrapper.attr('data-next-condition-type', "" );
$currentfieldConditionWrapper.attr('data-next-condition-selector', "" );
}
输出
在控制台中
HTML督察
为什么 data-next-is-condition
、data-next-condition-type
和 data-next-condition-selector
在 HTML 检查器中不可见?
有人得到解释了吗?
我发现发生了什么...
由于脚本最后删除了 data-next-*
,为了检查新属性,我尝试像这样使用 alert("stop");
:
if( !$conditionCheckbox.is(":checked") ){
resetConditionForNext( $currentConditionWrapper );
console.dir( $currentConditionWrapper );
alert("stop");
break;
}
但是 alert("stop");
在 HTML Inspector 中进行更改之前是 运行。
如果我写一个未知的 javascript 单词,例如 exit;
而不是 alert("stop");
这样的:
if( !$conditionCheckbox.is(":checked") ){
resetConditionForNext( $currentConditionWrapper );
console.dir( $currentConditionWrapper );
exit;
break;
}
脚本已锁定,HTML 检查器已更新:
在我的脚本中,我需要一直在 HTML 中的表单项上设置属性,以便在执行 ajax 请求之前保存以前的数据并评估下一个数据。
关于 data-next-*
属性,在脚本完成后一直被删除:
function actualizeTmpDataAndSpinner (){
//Notice : "Value" is position value
var a_dataValueKeys = [ "value", "is-condition", "condition-type", "condition-selector" ];
for( var k=0 ; k < a_dataValueKeys.length; k++ ){
$("*[data-previous-" + a_dataValueKeys[k] + "]").removeAttr( "data-previous-" + a_dataValueKeys[k] );
$("*[data-next-" + a_dataValueKeys[k] + "]").each( function () {
var dataNextValue = $(this).attr("data-next-" + a_dataValueKeys[k] );
$(this).attr("data-" + a_dataValueKeys[k], dataNextValue );
});
$("*[data-next-" + a_dataValueKeys[k] + "]").removeAttr("data-next-" + a_dataValueKeys[k] );
}
$(".h4a-spinner-wrapper").remove();
}
由于某些原因,在 data-next-*
设置值并删除后,目前以下代码行仅在 DOM 中设置属性,而不再在 HTML 中设置属性:
function resetConditionForNext( $currentfieldConditionWrapper ) {
$currentfieldConditionWrapper.attr('data-next-is-condition', "false" );
$currentfieldConditionWrapper.attr('data-next-condition-type', "" );
$currentfieldConditionWrapper.attr('data-next-condition-selector', "" );
}
输出
在控制台中
HTML督察
为什么 data-next-is-condition
、data-next-condition-type
和 data-next-condition-selector
在 HTML 检查器中不可见?
有人得到解释了吗?
我发现发生了什么...
由于脚本最后删除了 data-next-*
,为了检查新属性,我尝试像这样使用 alert("stop");
:
if( !$conditionCheckbox.is(":checked") ){
resetConditionForNext( $currentConditionWrapper );
console.dir( $currentConditionWrapper );
alert("stop");
break;
}
但是 alert("stop");
在 HTML Inspector 中进行更改之前是 运行。
如果我写一个未知的 javascript 单词,例如 exit;
而不是 alert("stop");
这样的:
if( !$conditionCheckbox.is(":checked") ){
resetConditionForNext( $currentConditionWrapper );
console.dir( $currentConditionWrapper );
exit;
break;
}
脚本已锁定,HTML 检查器已更新: