javascript - 操作内存中 jQuery 对象的 textarea 值

标签 javascript jquery html

给定一个字符串数组,其中每个字符串都是已分配值的表单元素的 html,我想循环遍历该数组并删除每个元素的值。

我需要得到相同的字符串数组,但其中:

  • inputtextarea 元素值均设置为 ''
  • select 元素选项全部取消选择
  • checkbox 元素全部未选中
  • 我将元素背景设置为黄色只是为了显示正在选择文本区域

为此,我想将元素包装在 div 中,设置所有元素属性,然后获取 div 的 html。

这适用于除文本区域之外的所有元素

我已经尝试过

  • .val('')
  • .attr('值', '')
  • .prop('值', '')

没有人能够删除内存中文本区域的值。

var elements = [
  '<input type="checkbox" checked>',
  '<input type="text" value="1041">',
  '<input type="text" value="activities">',
  '<textarea>some text</textarea>',
  '<select><option value=""></option><option value="1" selected>1</option></select>',
  '<select><option value=""></option><option value="1" selected>1</option></select>',
  '<textarea>some text</textarea>'
];

var newElements = [];
$.each(elements, function(i, item) {
  var $temp = $('<div>').html(item);
  var $tempElements = $temp.find('input:not(.row-select), textarea, select').addClass('test');
  //$tempElements.val('');  // doesnt work at all
  $tempElements.attr('value',''); // works for text inputs but not textarea
  $tempElements.attr('checked', false);
  $tempElements.find('option').attr('selected', false);
  newElements.push($temp.html());
});

$('#result').html(newElements.join(''));
.test{
  background-color:yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="result"></div>

预期结果:

var elements = [
  '<input type="checkbox">',
  '<input type="text" value="1041">',
  '<input type="text" value="activities">',
  '<textarea>some text</textarea>',
  '<select><option value=""></option><option value="1" selected>1</option></select>',
  '<select><option value="" selected></option><option value="1">1</option></select>',
  '<textarea></textarea>'
];

Here is a jsFiddle

我确实知道我可以将 html 附加到 dom 中的 div 中并在那里执行我需要的操作,但我很好奇是否没有办法在内存中执行此操作。

最佳答案

只需使用.text('')即可删除textarea的内容。

$tempElements.text('');

而且之前使用attr时不需要prop

// change
$tempElements.attr('value', '').prop('value', '');
// to
$tempElements.attr('value', '');

<强> Wokring example.

关于javascript - 操作内存中 jQuery 对象的 textarea 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39077189/

相关文章:

javascript - 如何修复 Ajax 调用 "The parameters dictionary contains a null entry........."

javascript - 将表达式而不是结果传递给指令

javascript - 使用 jQuery 中的切换使 div 不可见和可见

javascript - 从外部样式表(从文件)读取样式属性

jquery - 使用 jQuery 操作和转换表项

javascript - 什么是匿名闭包以及为什么它与普通闭包不同?

javascript - 使用javascript更改带有对象的urlpath

php - Wordpress - 在 jQuery 中获取自定义字段值

jquery - 如何使用 CSS3 和 jQuery 实现老虎机旋转效果?

javascript - 如何制作表单填充谷歌浏览器扩展