Javascript JQuery:选择具有唯一类和id的元素

Javascript JQuery:选择具有唯一类和id的元素,javascript,jquery,html,css,class,Javascript,Jquery,Html,Css,Class,我有以下html代码: <div class="category" id="154"> Category </div> <div class="category2" id="156"> Category2 </div> <div class="category3" id="157"> Category3 </div> <div class="category4" id="158"> Category4 &l

我有以下html代码:

<div class="category" id="154"> Category </div>

<div class="category2" id="156"> Category2 </div>

<div class="category3" id="157"> Category3 </div>

<div class="category4" id="158"> Category4 </div>
<input type="text" />
类别
类别2
类别3
类别4

所以在这个例子中,若我在文本框中写一个id,那个么如何用这个id选择div.category并获取内部HTML文本。使用jQuery,您只需要使用ID,因为它是唯一的值(或者应该是唯一的)

注意:如果您使用了重复的ID值,那么需要注意的是JQuery将只选择第一个ID值


如果要在输入textbox值时执行此操作,可以在textbox更改事件中执行此操作

$("input").change(function(){
   var id = $(this).val();
   var element = $("#" + id);
   if(element){
      var html = element.html();
      //do something with html here
   }
});
注意:您可能希望在文本框中输入一个ID值,以确保获得正确的控件


虽然我建议您找到一种使用重复ID值的方法,但是您可以使用这样的函数来获取所需的DIV

function GetContent(className, id) {
    var result = null;
    var matchingDivs = $("." + className);
    matchingDivs.each(function(index) {
        var div = $(matchingDivs[index]);
        if (div.attr("id") == id) {
            result = div.html();
        }
    });

    return result;
}

我建议您为文本框指定一个ID,以防在页面中添加其他文本框

但是,如果您只有1个文本输入,则以下操作将起作用:

 var id = $('input:text:first').val();
 var innerHtml = $('#' + id).html();
这将在文本框中的文本发生更改时使用此技术提醒html。

$(“#id.class”)

将通过class和ID选择必要的元素(当然,将
ID
class
替换为它们各自的名称)

.html()
添加到末尾将获得内容

i、 e:

$(“#id.class”).html()

要使用选择元素,必须在CSS中使用
\31 23
,或
$(“#\\31 23”)使用JavaScript选择器API(或使用它的实现,如jQuery)时。请参阅。但是如果我有其他具有类似id的元素,我可以按类+id选择元素吗?@Donatasviekutis:不,Jquery不会按照您希望的方式使用重复的id值。如果必须有重复项,则可以使用name属性。类似于<代码>$(“.class[name=154]”).html()-如果必须有重复的ID,您可以在匹配的类中循环每个div并找到ID(我将为此在帖子中添加一些内容)@Donatas:重复的ID在HTML中完全无效。有很多方法可以实现您想要的,但是如果您创建有效的HTML,总体来说会更好。@Donatasviekutis:请尝试使用唯一的ID值,但如果您确实必须复制它们。。。请参见我的编辑以获取帮助您的功能;)我试图找出如何通过特定类查找元素,然后获取该元素的ID。这个功能(稍作改动)完成了任务!谢谢
#id
.class
之间应该没有空格。否则,它将找到ID为
ID
的元素的类为
class
的子体。
 var id = $('input:text:first').val();
 var innerHtml = $('#' + id).html();