作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这就是我的 html 代码的样子:
<label><span>1</span><input type="radio" value="1" name="choice">
<span>Poor</span></label>
<label><span>2</span><input type="radio" value="2" name="choice"></label>
<label><span>3</span><input type="radio" value="3" name="choice"></label>
<label><span>4</span><input type="radio" value="4" name="choice"></label>
<label><span>5</span><input type="radio" value="5" name="choice">
<span>Great</span></label>
第二个、第三个和第四个标签 block 在 input 元素之后没有 span 元素。如果在这样的列表中,输入元素后面没有 Span,我需要插入一个空的 Span 标签。
<span></span>
所以输出如下:
<label><span>1</span><input type="radio" value="1" name="choice">
<span>Poor</span></label>
<label><span>2</span><input type="radio" value="2" name="choice"><span>
</span></label>
<label><span>3</span><input type="radio" value="3" name="choice"><span>
</span></label>
<label><span>4</span><input type="radio" value="4" name="choice"><span>
</span></label>
<label><span>5</span><input type="radio" value="5" name="choice">
<span>Great</span></label>
我是 jQuery 新手,这就是我到目前为止正在尝试的:
$('input').each(function() {
if($(this).closest('span').length<1) {
$('input').after("<span></span>");
}
});
但这会在每个标签 block 中插入几个空跨度。如有任何帮助,我们将不胜感激。
最佳答案
您必须使用 $(this)
而不是 $('input')
来定位循环中的当前元素:
$('input').each(function(i) {
if ($(this).next('span').length < 1) {
$(this).after("<span style='color: #f00;'>" + i + "</span>");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label><span>1</span><input type="radio" value="1" name="choice">
<span>Poor</span></label>
<label><span>2</span><input type="radio" value="2" name="choice"></label>
<label><span>3</span><input type="radio" value="3" name="choice"></label>
<label><span>4</span><input type="radio" value="4" name="choice"></label>
<label><span>5</span><input type="radio" value="5" name="choice">
<span>Great</span></label>
此外,您还可以使用 next()
方法检查 input
旁边是否有 span
。我使用 next 是因为 closest()
仅查找父元素,因此它不适用于您想要执行的操作。
关于jquery - 如果新的 span 元素尚不存在,则在 input 元素之后插入该元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45145342/
我需要面对一个架构/设计决策。 我正在开发一个 Cordova/Meteor 应用程序,它具有独特的入门体验。新用户会看到一个向导,引导他们完成填写某些表单的步骤。 向导流程会等到最后一步才能注册用户
我想通过 psql 在空数据库中加载一些 SQL 函数: psql -d my_database -f fuctions.sql --set ON_ERROR_STOP=1 我使用 --set ON_
我是一名优秀的程序员,十分优秀!