Javascript 基于文本选中上一个复选框
我在对话框中有一组复选框。单击按钮后,将显示此对话框。这些复选框后面是带有一些文本的锚定标记。这些复选框与一些有序和无序列表一致 在这种情况下,复选框被选中的方式有两种Javascript 基于文本选中上一个复选框,javascript,jquery,html,checkbox,local-storage,Javascript,Jquery,Html,Checkbox,Local Storage,我在对话框中有一组复选框。单击按钮后,将显示此对话框。这些复选框后面是带有一些文本的锚定标记。这些复选框与一些有序和无序列表一致 在这种情况下,复选框被选中的方式有两种 如果单击了父项,则也会选中相应的子复选框 用户还可以选择单个子级 在这里,作为父母的复选框有自己的标识符。但是孩子们没有标识符。如果它也有,则层次结构中的所有子级都有一个标识符 我需要基本上存储在localStorage中选中的复选框,以便在重新加载页面时,我可以检索以前选中的复选框的状态 上面的第一种情况发生了,并且工作正常,
function display(){
//some code to display dialog box where the checkboxes along with anchor tags come into picture
var vals[];
$("input[type=checkbox").each(function(){
vals.push($(this).next("a").text());
});
//some code which brings in localStorage and the existing data in the dialog
代码将进一步执行,最终接收所有参数并检查以下条件
if ( z[x]==hname[k]){
alert("Matched");
$('a[text="'+hname[k]+'"}').prev().attr("checked",true);
}
这里z[x]是我以前存储在localStorage中的值,hname[k]是对话框中的所有值
现在我的问题就在这一行
$('a[text="'+hname[k]+'"]').prev().attr("checked",true);
我试图检查文本前面的元素。但它不起作用
我的html代码::
<ul class="test_ex">
<li>
<input type="checkbox" id="chckBox" class="parent" /> <a class="ref">Fruits</a>
<ul class="example">
<li>
<input type="checkbox" id="chckBox" class="child" /> <a class="ref"> Apple </a>
</li>
<li>
<input type="checkbox" id="chckBox" class="child" /> <a class="ref"> Orange </a>
</li>
</ul>
<ul class="test_ex_sample">
<li>
<input type="checkbox" id="chckBox" class="parent" /> <a class="ref">Birds</a>
<ul class="example">
<li>
<input type="checkbox" id="chckBox" class="child" /> <a class="ref"> Peacock </a>
</li>
<li>
<input type="checkbox" id="chckBox" class="child" /> <a class="ref">Parrot </a>
</li>
</ul>
<ul class="example">
<li>
<input type="checkbox" id="chckBox" class="parent" /> <a class="ref"> Food </a>
<ul class="example">
<li>
<input type="checkbox" id="chckBox" class="child" /> <a class="ref">Bread </a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<input type="button" id="testB" value="OK" />
-
水果
-
苹果
-
橙色
-
鸟
-
雄孔雀
-
鹦鹉
-
食物
-
面包
我宁愿使用过滤器
功能:
$("a").filter(function (i, e) {
return 'Birds' === e.innerText.trim();
}).prev().attr("checked", true);
成功选中包含“Birds”的锚点附近的复选框。我宁愿使用
过滤器
功能:
$("a").filter(function (i, e) {
return 'Birds' === e.innerText.trim();
}).prev().attr("checked", true);
成功选中包含“Birds”的锚点附近的复选框。我宁愿使用
过滤器
功能:
$("a").filter(function (i, e) {
return 'Birds' === e.innerText.trim();
}).prev().attr("checked", true);
成功选中包含“Birds”的锚点附近的复选框。我宁愿使用
过滤器
功能:
$("a").filter(function (i, e) {
return 'Birds' === e.innerText.trim();
}).prev().attr("checked", true);
成功选中包含“Birds”的锚附近的复选框。这是可能的解决方案之一: HTML:
<ul class="test_ex">
<li>
<input type="checkbox" class="parent" />
<a class="ref">Fruits</a>
<ul class="example">
<li>
<input type="checkbox" class="child" />
<a class="ref"> Apple </a>
</li>
<li>
<input type="checkbox" class="child" />
<a class="ref"> Orange </a>
</li>
</ul>
<ul class="test_ex_sample">
<li>
<input type="checkbox" class="parent" /> <a class="ref">Birds</a>
<ul class="example">
<li>
<input type="checkbox" class="child" /> <a class="ref"> Peacock </a>
</li>
<li>
<input type="checkbox" class="child" /> <a class="ref">Parrot </a>
</li>
</ul>
<ul class="example">
<li>
<input type="checkbox" class="parent" /> <a class="ref"> Food </a>
<ul class="example">
<li>
<input type="checkbox" class="child" /> <a class="ref">Bread </a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<input type="button" id="testB" value="OK" />
$("input:checkbox").click(function(){
$(this).siblings("ul")
.find("input[type=checkbox]")
.prop("checked",this.checked);
});
$("#testB").click(function(){
var checkedValues =
$('input:checkbox:checked').map(function() {
return $(this).next().text(); //or html() instead of text()
}).get();
alert(checkedValues);
});
检查此链接以查看工作示例
希望有用 这是可能的解决方案之一: HTML:
<ul class="test_ex">
<li>
<input type="checkbox" class="parent" />
<a class="ref">Fruits</a>
<ul class="example">
<li>
<input type="checkbox" class="child" />
<a class="ref"> Apple </a>
</li>
<li>
<input type="checkbox" class="child" />
<a class="ref"> Orange </a>
</li>
</ul>
<ul class="test_ex_sample">
<li>
<input type="checkbox" class="parent" /> <a class="ref">Birds</a>
<ul class="example">
<li>
<input type="checkbox" class="child" /> <a class="ref"> Peacock </a>
</li>
<li>
<input type="checkbox" class="child" /> <a class="ref">Parrot </a>
</li>
</ul>
<ul class="example">
<li>
<input type="checkbox" class="parent" /> <a class="ref"> Food </a>
<ul class="example">
<li>
<input type="checkbox" class="child" /> <a class="ref">Bread </a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<input type="button" id="testB" value="OK" />
$("input:checkbox").click(function(){
$(this).siblings("ul")
.find("input[type=checkbox]")
.prop("checked",this.checked);
});
$("#testB").click(function(){
var checkedValues =
$('input:checkbox:checked').map(function() {
return $(this).next().text(); //or html() instead of text()
}).get();
alert(checkedValues);
});
检查此链接以查看工作示例
希望有用 这是可能的解决方案之一: HTML:
<ul class="test_ex">
<li>
<input type="checkbox" class="parent" />
<a class="ref">Fruits</a>
<ul class="example">
<li>
<input type="checkbox" class="child" />
<a class="ref"> Apple </a>
</li>
<li>
<input type="checkbox" class="child" />
<a class="ref"> Orange </a>
</li>
</ul>
<ul class="test_ex_sample">
<li>
<input type="checkbox" class="parent" /> <a class="ref">Birds</a>
<ul class="example">
<li>
<input type="checkbox" class="child" /> <a class="ref"> Peacock </a>
</li>
<li>
<input type="checkbox" class="child" /> <a class="ref">Parrot </a>
</li>
</ul>
<ul class="example">
<li>
<input type="checkbox" class="parent" /> <a class="ref"> Food </a>
<ul class="example">
<li>
<input type="checkbox" class="child" /> <a class="ref">Bread </a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<input type="button" id="testB" value="OK" />
$("input:checkbox").click(function(){
$(this).siblings("ul")
.find("input[type=checkbox]")
.prop("checked",this.checked);
});
$("#testB").click(function(){
var checkedValues =
$('input:checkbox:checked').map(function() {
return $(this).next().text(); //or html() instead of text()
}).get();
alert(checkedValues);
});
检查此链接以查看工作示例
希望有用 这是可能的解决方案之一: HTML:
<ul class="test_ex">
<li>
<input type="checkbox" class="parent" />
<a class="ref">Fruits</a>
<ul class="example">
<li>
<input type="checkbox" class="child" />
<a class="ref"> Apple </a>
</li>
<li>
<input type="checkbox" class="child" />
<a class="ref"> Orange </a>
</li>
</ul>
<ul class="test_ex_sample">
<li>
<input type="checkbox" class="parent" /> <a class="ref">Birds</a>
<ul class="example">
<li>
<input type="checkbox" class="child" /> <a class="ref"> Peacock </a>
</li>
<li>
<input type="checkbox" class="child" /> <a class="ref">Parrot </a>
</li>
</ul>
<ul class="example">
<li>
<input type="checkbox" class="parent" /> <a class="ref"> Food </a>
<ul class="example">
<li>
<input type="checkbox" class="child" /> <a class="ref">Bread </a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<input type="button" id="testB" value="OK" />
$("input:checkbox").click(function(){
$(this).siblings("ul")
.find("input[type=checkbox]")
.prop("checked",this.checked);
});
$("#testB").click(function(){
var checkedValues =
$('input:checkbox:checked').map(function() {
return $(this).next().text(); //or html() instead of text()
}).get();
alert(checkedValues);
});
检查此链接以查看工作示例
希望有用 如果您对HTML代码进行pos操作会更好。我添加了一个类似的HTML,我在上找到了:)
text=“…”
不是有效的HTML属性,并且它不存在于您提供的HTML中。我会将其更改为value。它仍然不起作用。如果您对HTML代码进行pos操作会更好。我添加了一个类似的HTML,我在上找到了:)text=“…”
不是有效的HTML属性,并且它不存在于您提供的HTML中。我将它更改为value。它仍然不起作用。如果您对HTML代码进行pos操作会更好。我添加了一个类似的HTML,我在上找到了:)text=“…”
不是有效的HTML属性,并且它不存在于您提供的HTML中。我将它更改为value。它仍然不起作用。如果您对HTML代码进行pos操作会更好。我添加了一个类似的HTML,我在上找到了:)text=“…”
不是有效的HTML属性,并且它不存在于您提供的HTML中。我将它更改为value。但还是不行。