我想知道,我们能否在选择器内提供变量而不是#anyId
。
其实我正在尝试这段代码,
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<div id="aDiv123">
<p id="abcd1234" class="abcd123">Click me!</p>
</div>
<script>
$("p").live("click", function() {
$(this).after("<p id='abcd123' class='abcd2323'>Another paragraph!</p>");
var number = this.id.match(/^abcd(\d+)$/)[1];
var iD = this.id;
alert(number);
alert(iD);
var div = "#"+"aDiv"+number;
alert(div)
$(div).remove();
});
</script>
</body>
</html>
这是上述代码的fiddle link。
有关我在哪里做错的任何建议!!!!
谢谢!
答案 0 :(得分:4)
是的,您可以使用变量,假设它包含一个有效的jquery选择器的字符串,或者对DOM元素的引用,或者对另一个jquery对象的引用。
如果您遇到jquery使用问题,那么jquery api文档非常出色。
答案 1 :(得分:3)
我相信你的问题只是一个错字。您的ID为#aDiv123
和#abcd1234
的元素,但尝试删除#aDiv1234
。纠正这个并且它会起作用。
答案 2 :(得分:2)
问题是你的Div与段落的编号不同,应该是:
<div id="aDiv1234">
<p id="abcd1234">
不是:aDiv123
答案 3 :(得分:1)
$ JQuery函数只接受参数的字符串,因此您可以构建自己的选择器,并传递一些变量。
var sel = tag + ':visible';
$(sel) -> all visible "tags"
答案 4 :(得分:0)
如果你想对包含段落的div进行操作,为什么不这样做:
$('p').live('click', function() {
$(this).parent().remove();
});
......或......
$('p').live('click', function() {
$(this).parents('.discriminator').remove();
});