[英]jQuery - What's wrong with that code?
I've onclick jquery code that doesn't give any response even with an error! 我的onclick jQuery代码即使出现错误也不会给出任何响应!
I don't know why, but here's my jQuery Code : 我不知道为什么,但这是我的jQuery代码 :
/* This Is working correctly */
$(".add-blog .blog-add-form .add-article .input-group select").on("change", function() {
var tagsUl = '<li class="' + $(this).val() + '"><i class="fa fa-fw fa-times" aria-hidden="true"></i> ' + $(".add-blog .blog-add-form .add-article .input-group select option:selected").text() + '</li>';
$(".add-blog .blog-add-form .add-article .input-group ul").append($(tagsUl));
$(".add-blog .blog-add-form .add-article .input-group select option:selected").remove();
});
/* This isn't working correctly */
$(".add-blog .blog-add-form .add-article .input-group ul li i").on("click", function() {
var optionValue = $(this).parent().attr("class"),
optionText = $(this).parent().text(),
appendedOption = "<option value='" + $(optionValue) + "'>" + $(optionText) + "</option>";
$(this).parent().parent().parent().children("select").append($(appendedOption));
$(this).parent().remove();
});
I'm 100% sure that this element selector exist 我100%确定此元素选择器存在
when I open the css element inspector, select the element and put the same element selector, it shows that this element is the selected one. 当我打开css元素检查器时,选择该元素并放入相同的元素选择器,它表明此元素是选定的元素。
anyway, here's my HTML Code : 无论如何,这是我的HTML代码 :
<article class='add-blog'>
<div class='blog-add-form'>
<div class='add-article'>
<form method='POST' action='example.php' class='form-horizontal'>
<div class='input-group'>
<select></select>
<ul class='list-unstyled selected-ul'>
<li class='0'><i class='fa fa-fw fa-times'></i> Anytext</li>
</ul>
</div>
</form>
</div>
</div>
</article>
Your problem is that you are casting your optionValue
and optionText
to another jQuery object when you add them to appendOption
. 您的问题是,当将他们的
optionValue
和optionText
添加到appendOption
时,它们正在投射到另一个jQuery对象。 Remove the $()
around optionValue
and optionText
and it should work. 删除
optionValue
和optionText
周围的$()
,它应该可以工作。
$(".add-blog .blog-add-form .add-article .input-group ul li i").on("click", function() { var optionValue = $(this).parent().attr("class"); var optionText = $(this).parent().text(); var appendedOption = "<option value='" + optionValue + "'>" + optionText + "</option>"; $(this).parent().parent().parent().children("select").append($(appendedOption)); $(this).parent().remove(); });
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <article class='add-blog'> <div class='blog-add-form'> <div class='add-article'> <form method='POST' action='example.php' class='form-horizontal'> <div class='input-group'> <select></select> <ul class='list-unstyled selected-ul'> <li class='0'><i class='fa fa-fw fa-times'></i> Anytext</li> </ul> </div> </form> </div> </div> </article>
You're trying to pass to the jQuery
function ( $
) a string, and it interept it as a selector: 您试图将一个字符串传递给
jQuery
函数( $
),并将其作为选择器插入:
appendedOption = "<option value='" + $(optionValue) + "'>" + $(optionText) + "</option>";
Instead, do it as follows: 而是,请按照以下步骤操作:
appendedOption = "<option value='" + optionValue + "'>" + optionText + "</option>";
$(".add-blog .blog-add-form .add-article .input-group ul li i").on("click", function() { var optionValue = $(this).parent().attr("class"), optionText = $(this).parent().text(), appendedOption = "<option value='" + optionValue + "'>" + optionText + "</option>"; $(this).parent().parent().parent().children("select").append(appendedOption); $(this).parent().remove(); });
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <article class='add-blog'> <div class='blog-add-form'> <div class='add-article'> <form method='POST' action='example.php' class='form-horizontal'> <div class='input-group'> <select></select> <ul class='list-unstyled selected-ul'> <li class='0'><i class='fa fa-fw fa-times'></i> Anytext</li> </ul> </div> </form> </div> </div> </article>
$(".add-blog .blog-add-form .add-article .input-group select").on("change", function() { var tagsUl = '<li class="' + $(this).val() + '"><i class="fa fa-fw fa-times" aria-hidden="true"></i> ' + $(".add-blog .blog-add-form .add-article .input-group select option:selected").text() + '</li>'; $(".add-blog .blog-add-form .add-article .input-group ul").append($(tagsUl)); $(".add-blog .blog-add-form .add-article .input-group select option:selected").remove(); $(".add-blog .blog-add-form .add-article .input-group ul li i").on("click", function() { var optionValue = $(this).parent().attr("class"), optionText = $(this).parent().text(), appendedOption = "<option value='" + optionValue + "'>" + optionText + "</option>"; $("select").append(appendedOption); $(this).parent().remove(); }); });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.