这个有点复杂,我将详细描述我最初的问题以及我目前解决它的位置。
问题:
我的 CMS 输出一些 HTML 用于输入,如下所示:
<input type="text"><input type="submit">
现在因为这些输入元素不是每个都在自己的行上,所以按钮和文本字段之间缺少空格,如下所示:
首选的方式,以及生成的大部分 HTML 实际上是这样的,是将 HTML 放在单独的行上:
<input type="text"/>
<input type="submit"/>
使它们呈现如下:
现在,我无法更改 HTML(由 CMS 生成),也无法使用边距和负边距,因为它们会影响所有输入。
我发现这个 jQuery 解决方案似乎可以完美运行并解决了问题:
$('input').after(" ");
它在所有输入元素之间提供一致的空白,就好像它们以正确的方式编写一样。但是,我不能在我的解决方案中使用 jQuery。我们不使用 jQuery 库。我只能使用纯 javascript 或 YUI3。
现在,stackoverflow 上的某个人帮助我将上面的 jQuery 转换为以下 YUI3 代码:
Y.all('input').insert(' ','after');
这确实有效,因为它在没有空白的地方添加了空白。但是,这段代码的问题在于它还为已经有空格的正确 HTML 片段添加了额外的空格。
现在我的问题是:
有没有办法
(1)改变
Y.all('input').insert(' ','after');
使其功能与
$('input').after(" ");
或者,或者(2)可能有一个纯 javascript 解决方案可以做 jQuery 解决方案所做的事情,
或者(3)有没有一种方法可以首先删除元素之间的所有空格,然后使用上面的 YUI 方法添加一个空格?
谢谢,并为模糊的问题标题道歉!:)
编辑:只是一些额外的信息。
这是实际问题:http: //jsfiddle.net/C3sHf/3/
在这里,您可以看到 jQuery 代码如何解决问题并制作一致的空白:http: //jsfiddle.net/C3sHf/2/
这是 YUI3 解决方案,但它不能按预期工作:http: //jsfiddle.net/9eTrP/1/