我有一个网站,其中包含与此类似的元素:
<p id="root.SomeCoolThing">Some Cool Thing</p>
Run Code Online (Sandbox Code Playgroud)
我不能用jQuery选择段落,$('#root.SomeCoolThing')因为jQuery认为,SomeCoolThing是一个元素的类id="root".
如何用jQuery选择这个元素?我想避免像这样的结构:
$(document.getElementById('root.SomeCoolThing'))
Run Code Online (Sandbox Code Playgroud) 我刚开始第一次使用jquery,所以我不确定我所做的是否正确.我正在尝试做的是非常基本的,我有一个脚本,它在MVC视图中加载时向文本框添加css水印.
要选择元素,请执行以下操作:
jQuery(document).ready(function(){$('#Department.DeptName').addWatermark('input-watermarked', 'test');});
Run Code Online (Sandbox Code Playgroud)
然后在我的脚本中添加css水印类,它在"this.val().length"语句中失败.
jQuery.fn.toggleWatermark = function(watermarkedClass, watermarkText) {
if (this.hasClass(watermarkedClass)) {
this.removeWatermark(watermarkedClass);
}
else if (this.val().length == 0) {
this.addClass(watermarkedClass);
this.val(watermarkText);
}
Run Code Online (Sandbox Code Playgroud)
}
该脚本在元素id为"DepartmentDeptName"时工作正常,就好像当元素id在其中包含一个点时,选择器不起作用.有谁知道为什么或如何解决这个问题?
我有一个带ID的div
<div id="updates-pane-user.followed_on">
Run Code Online (Sandbox Code Playgroud)
这个jquery选择器工作
$("[id^='updates-pane']")
Run Code Online (Sandbox Code Playgroud)
但事实并非如此
$("#updates-pane-user.followed_on")
Run Code Online (Sandbox Code Playgroud)
我没有看到有什么问题.身份证名称可以包括句号吗?我错过了一些明显的东西吗
我正在尝试更改元素的内部HTML值.我没有真正使用过jQuery,而且我在功能的许多方面仍然是新手.
$('a.toggle-download').live('click', function (event) {
$.post("/ajax/toggle-download", { code: $(this).data("document"), prev_value: $(this).data("val") })
.done(function(data) {
var json = data,
obj = JSON && JSON.parse(json) || $.parseJSON(json);
if(obj['return'] == 1){
//document.getElementById("p_" + obj['code']).innerHTML = 'some text';
$("#p_" + obj['code']).html('some text');
}
});
event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这两行,首先是jQuery one through $("#p_" + obj['code']),它没有用,然后通过document.getElementById("p_" + obj['code'])它完美地工作.
看来我在这里遗漏了一些明显的东西,但我仍然不明白为什么jquery在这种情况下不起作用!
为什么普通的旧javascript工作正常,当jQuery没有?
1)jQuery本身工作,它正确加载.不存在冲突:成功发送ajax呼叫并正确接收答案,
2)收到的ID存在且唯一
3)我不是热衷于jQuery html()方法,但我遵循文档,它应该工作,因为我使用它
使用Chrome 27.0.1453.116 m时出现此问题.我没有用其他版本或其他浏览器测试它,但我很确定这是一个jQuery问题而不是浏览器问题.另外,我在apache上使用php 5.3,但这些信息再次与问题无关.
如果我错过了一些你需要更好地理解我的问题的信息,请在评论中告诉我,我会尽快回答你的问题.另外,请原谅我的坏语法,但我不是母语为英语的人.
根据要求,这是ajax响应的一个例子:
{"return":1,"code":"5.43.321"}
该命令console.log($("#p_" + obj['code']).length)产生"0"
刚刚升级到最新的ASP.NET MVC候选版本时,我注意到,当使用Html Helpers时,任何带有句点"."的名称.当输出元素的ID时,它将被下划线"_"替换.
我相信这是为了帮助使用JQuery,并且使用句点是为了帮助使用ModelBinders.这打破了我们使用原型的所有javascript,因为ID已全部更改.
有没有办法轻松关闭此功能?
如何在jquery BY NAME中引用其中包含[]的元素.
<select name="values[]" multiple="true">
<option value="1">1</option>
<option value="2">2</option>
<option value="2">2</option>
</select>
<script type="text/javascript">
$('[name=values[]]');
</script>
Run Code Online (Sandbox Code Playgroud)
这应该抓住元素,但它不起作用,我相信名称中的[]搞乱它,逃避它似乎也不起作用.我无法弄清楚我做错了什么
我有一个带点('.')的id.我无法使用jQuery选择它.
例如:
<p id="sec.ond">this is another paragraph</p>
Run Code Online (Sandbox Code Playgroud)
如何使用这样的id来选择这个元素?
当我使用带有数组的spring表单时,我得到了这样的id,例如:
<form:input path="abc[0].firstName" />
Run Code Online (Sandbox Code Playgroud)
这将导致:
<form:input id="abc0.firstName" name="abc[0].firstName" />
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
我试着运行以下代码:
$('#info-mail.ru .domain-info').toggle();
Run Code Online (Sandbox Code Playgroud)
#info-mail.ru我理解为解释为id ="info-mail"和class ="ru",但我有以下结构:
<div id="info-mail.ru">
<p class="domain-info">
Some cool info
Some cool info
Some cool info
Some cool info
</p>
</div>
Run Code Online (Sandbox Code Playgroud)
我该如何屏蔽"." 选择语句中的char?或者唯一的方法是替换所有"." 用"_"(例如)?
TIA!
我想知道为什么jQuery不允许"+"符号.这是一个如何使用"1"和"3"而不是"2+"的示例.只需将鼠标悬停在每个div上方的文本上.
<div id="div-2+"></div>
Run Code Online (Sandbox Code Playgroud)
$('a.hover').mouseover(function() {
dataI = $(this).data('i');
$('div#div-' + dataI).addClass('h');
});
$('a.hover').mouseout(function() {
dataI = $(this).data('i');
$('div#div-' + dataI).removeClass('h');
});Run Code Online (Sandbox Code Playgroud)
a {
display: inline-block;
width: 100px;
margin: 60px 20px 60px 0;
text-align: center;
}
div {
display: inline-block;
width: 100px;
height: 100px;
margin-right: 20px;
background-color: #ddd;
}
div.h {
background-color: #f00;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a class="hover" data-i="1">DIV 1</a>
<a class="hover" data-i="2+">DIV 2+</a>
<a class="hover" data-i="3">DIV 3</a>
<br />
<div id="div-1"></div>
<div id="div-2+"></div>
<div id="div-3"></div>Run Code Online (Sandbox Code Playgroud)